Man Linux: Main Page and Category List


       ptmx, pts - pseudo-terminal master and slave


       The  file  /dev/ptmx  is a character file with major number 5 and minor
       number 2, usually of mode 0666 and  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
       created  in  the  /dev/pts directory.  Each file descriptor obtained by
       opening /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
       provides  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
       emulators such as xterm(1), in which data read from the pseudo-terminal
       master 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 terminal or terminal emulator.

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


       /dev/ptmx, /dev/pts/*


       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


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


       This  page  is  part of release 3.24 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at