https://unix.stackexchange.com/a/492304/674说
在Linux上,使用devpts,没有主设备文件。 master端的进程使用了一个文件描述符,它是通过打开ptmx得到的,但是没有对应的设备节点。
作者是否提到了/dev/ptmx
或/dev/pts/ptmx
?
为什么是设备文件/dev/ptmx
而/dev/pts/ptmx
不是设备文件?它们是什么类型的文件?
/dev/ptmx
和 和有什么区别/dev/pts/ptmx
?
谢谢。
在 Lubuntu 18.04 上
$ file /dev/ptmx
/dev/ptmx: character special (5/2)
$ file /dev/pts/ptmx
/dev/pts/ptmx: character special (5/2)
$ sudo su
# stat -L /dev/fd/3 3<> /dev/pts/ptmx
File: /dev/fd/3
Size: 0 Blocks: 0 IO Block: 1024 character special file
Device: 15h/21d Inode: 2 Links: 1 Device type: 5,2
Access: (0000/c---------) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-11-21 13:39:10.544000218 -0500
Modify: 2018-11-21 13:39:10.544000218 -0500
Change: 2018-11-21 13:39:10.544000218 -0500
Birth: -
# stat -L /dev/fd/3 3<> /dev/ptmx
File: /dev/fd/3
Size: 0 Blocks: 0 IO Block: 4096 character special file
Device: 6h/6d Inode: 87 Links: 1 Device type: 5,2
Access: (0666/crw-rw-rw-) Uid: ( 0/ root) Gid: ( 5/ tty)
Access: 2019-01-06 07:19:54.372098540 -0500
Modify: 2019-01-06 07:19:54.372098540 -0500
Change: 2018-11-21 13:39:30.372098540 -0500
Birth: -
答案1
上下文是“一个伪终端有一对主从”。当我写“没有主设备文件”时,我的意思是文件系统中没有对应于伪终端连接的主端的设备节点,与从端不同。我指的不是/dev/ptmx
或/dev/pts/ptmx
。
/dev/ptmx
和是设备节点,如或 的/dev/pts/ptmx
输出中的类型所示。它们具有相同的主要和次要,这意味着它们提供对相同设备的访问。ls
stat
看JdeBP的回答到`/dev/pts/ptmx` 从哪里来?了解这两个设备节点的历史(以及现在 Linux 上有两个设备节点的原因)。