pty(4)
NAME
pty - pseudo terminal driver
SYNOPSIS
device pty
DESCRIPTION
- The pty driver provides support for a device-pair termed a
- pseudo
terminal. A pseudo terminal is a pair of character devices, - a master
device and a slave device. The slave device provides to a - process an
interface identical to that described in tty(4). However, - whereas all
other devices which provide the interface described in - tty(4) have a
hardware device of some sort behind them, the slave device - has, instead,
another process manipulating it through the master half of - the pseudo
terminal. That is, anything written on the master device is - given to the
slave device as input and anything written on the slave de - vice is presented as input on the master device.
- The following ioctl(2) calls apply only to pseudo terminals:
- TIOCSTOP Stops output to a terminal (e.g. like typing
- `^S'). Takes no
- parameter.
- TIOCSTART Restarts output (stopped by TIOCSTOP or by typ
- ing `^S').
- Takes no parameter.
- TIOCPKT Enable/disable packet mode. Packet mode is en
- abled by speci
- fying (by reference) a nonzero parameter and
- disabled by
specifying (by reference) a zero parameter. - When applied to
the master side of a pseudo terminal, each sub - sequent read(2)
from the terminal will return data written on - the slave part
of the pseudo terminal preceded by a zero byte - (symbolically
defined as TIOCPKT_DATA), or a single byte re - flecting control
status information. In the latter case, the - byte is an
inclusive-or of zero or more of the bits: - TIOCPKT_FLUSHREAD whenever the read queue for
- the terminal
is flushed.
- TIOCPKT_FLUSHWRITE whenever the write queue for
- the terminal
- is flushed.
- TIOCPKT_STOP whenever output to the ter
- minal is
- stopped a la `^S'.
- TIOCPKT_START whenever output to the ter
- minal is
- restarted.
- TIOCPKT_DOSTOP whenever t_stopc is `^S' and
- t_startc is
- `^Q'.
- TIOCPKT_NOSTOP whenever the start and stop
- characters
- are not `^S/^Q'.
- While this mode is in use,
- the presence
of control status informa - tion to be read
from the master side may be - detected by a
select(2) for exceptional - conditions.
- This mode is used by
- rlogin(1) and
rlogind(8) to implement a - remote-echoed,
locally `^S/^Q' flow-con - trolled remote
login with proper back - flushing of output; it can be used by other
- similar programs.
- TIOCUCNTL Enable/disable a mode that allows a small number
- of simple
- user ioctl(2) commands to be passed through the
- pseudo-terminal, using a protocol similar to that of TIOCP
- KT. The
TIOCUCNTL and TIOCPKT modes are mutually exclu - sive. This
mode is enabled from the master side of a pseudo - terminal by
specifying (by reference) a nonzero parameter - and disabled by
specifying (by reference) a zero parameter. - Each subsequent
read(2) from the master side will return data - written on the
slave part of the pseudo terminal preceded by a - zero byte, or
a single byte reflecting a user control opera - tion on the
slave side. A user control command consists of - a special
ioctl(2) operation with no data; the command is - given as
UIOCCMD(n), where n is a number in the range - 1-255. The
operation value n will be received as a single - byte on the
next read(2) from the master side. The ioctl(2) - UIOCCMD(0)
is a no-op that may be used to probe for the ex - istence of
this facility. As with TIOCPKT mode, command - operations may
be detected with a select(2) for exceptional - conditions.
FILES
/dev/pty[p-sP-S][0-9a-v] master pseudo terminals
/dev/tty[p-sP-S][0-9a-v] slave pseudo terminals
DIAGNOSTICS
None.
SEE ALSO
HISTORY
- The pty driver appeared in 4.2BSD.
- BSD November 30, 1993