Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (Debian-3.1)
Apropos / Subsearch:
optional field

PTS(4)                     Linux Programmer's Manual                    PTS(4)

       ptmx and 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 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

       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(8), and passwd(8)).

       /dev/ptmx, /dev/pts/*

       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

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

Linux                             2002-10-09                            PTS(4)