首页 > 代码库 > ptmx

ptmx

ptmx

DESCRIPTION
       The  file  /dev/ptmx  is a character file with major number 5 and minor
       number 2, usually of mode 0666 and owner.group  of  root.root.   It  is
       used to create a pseudo-terminal master and slave pair.

       When a process opens /dev/ptmx, it gets a file descriptor for a pseudo-
       terminal master (PTM), and a pseudo-terminal slave (PTS) device is cre-
       ated in the /dev/pts directory.  Each file descriptor obtained by open-
       ing /dev/ptmx is an independent PTM with its own associated PTS,  whose
       path can be found by passing the descriptor to ptsname(3).

       Before  opening  the  pseudo-terminal slave, you must pass the master‘s
       file descriptor to grantpt(3) and unlockpt(3).

       Once both the pseudo-terminal master and slave are open, the slave pro-
       vides  processes  with an interface that is identical to that of a real
       terminal.

       Data written to the slave is presented  on  the  master  descriptor  as
       input.  Data written to the master is presented to the slave as input.

       In practice, pseudo-terminals are used for implementing terminal emula-
       tors such as xterm(1), in which data read from the pseudo-terminal mas-
       ter  is  interpreted by the application in the same way a real terminal
       would interpret the data, and for  implementing  remote-login  programs
       such  as sshd(8), in which data read from the pseudo-terminal master is
       sent across the network to a client program that is connected to a ter-
       minal or terminal emulator.

       Pseudo-terminals  can  also be used to send input to programs that nor-
       mally refuse to read input from pipes (such as su(1), and passwd(1)).

FILES
       /dev/ptmx, /dev/pts/*

NOTES
       The Linux support for the above (known as Unix98 pty  naming)  is  done
       using the devpts file system, that should be mounted on /dev/pts.

       Before this Unix98 scheme, master ptys were called /dev/ptyp0, ...  and
       slave ptys /dev/ttyp0, ...  and one needed lots of preallocated  device
       nodes.

SEE ALSO
       getpt(3), grantpt(3), ptsname(3), unlockpt(3), pty(7)

COLOPHON
       This  page  is  part of release 3.23 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at http://www.kernel.org/doc/man-pages/.