https://unix.stackexchange.com/a/492304/674 dice
Su Linux, usando devpts, non esiste un file del dispositivo master. Il processo sul lato master utilizza un descrittore di file, che ottiene aprendo ptmx, ma non esiste un nodo dispositivo corrispondente.
L'autore ha fatto riferimento a /dev/ptmx
o /dev/pts/ptmx
?
Perché sono /dev/ptmx
e /dev/pts/ptmx
non file del dispositivo? Che tipi di file sono?
Qual è la differenza tra /dev/ptmx
e /dev/pts/ptmx
?
Grazie.
A 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: -
Risposta accettata:
Il contesto era "Uno pseudoterminale ha una coppia di master e slave". Quando ho scritto "non esiste un file di dispositivo master", intendevo dire che non esiste un nodo di dispositivo nel file system corrispondente all'estremità master di una connessione pseudoterminale, a differenza dell'estremità slave. Non mi riferivo nemmeno a /dev/ptmx
o /dev/pts/ptmx
.
/dev/ptmx
e /dev/pts/ptmx
sono nodi dispositivo, come indicato dal loro tipo nell'output di ls
o stat
. Hanno lo stesso maggiore e lo stesso minore, il che significa che forniscono l'accesso allo stesso dispositivo.
Vedi la risposta di JdeBP a Da dove viene `/dev/pts/ptmx`? per la cronologia di entrambi i nodi del dispositivo (e il motivo per cui ce ne sono due su Linux al giorno d'oggi).