ptmx

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
PTS(4)			  Linux Programmer’s Manual		       PTS(4)



NAME
       ptmx and pts - pseudo-terminal master and slave

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 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	 emu-
       lators  such  as xterm(1), in which data read from the pseudo-terminal
       master is interpreted by the application in the same way a real termi-
       nal  would  interpret the data, and for implementing remote-login pro-
       grams such as sshd(8), in which data  read  from	 the  pseudo-terminal
       master  is  sent	 across	 the network to a client program that is con-
       nected to a terminal 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(8), and passwd(8)).

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

NOTES
       The Linux support for the above (known as Unix98 pty naming)  is	 done
       using the devpts filesystem, 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)



Linux				  2002-10-09			       PTS(4)