2.11BSD/man/cat4/pty.0
PTY(4) UNIX Programmer's Manual PTY(4)
NAME
pty - pseudo terminal driver
SYNOPSIS
/sys/conf/SYSTEM:
NPTY _p_t_y_s # pseudo-terminals, in groups of 8
DESCRIPTION
The _p_t_y driver provides support for a device-pair termed a
_p_s_e_u_d_o _t_e_r_m_i_n_a_l. A pseudo terminal is a pair of character
devices, a _m_a_s_t_e_r device and a _s_l_a_v_e device. The slave dev-
ice provides processes an interface identical to that
described in _t_t_y(4). However, whereas all other devices
which provide the interface described in _t_t_y(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 writ-
ten on the master device is given to the slave device as
input and anything written on the slave device is presented
as input on the master device.
In configuring, _p_t_y_s specifies the number of pseudo terminal
pairs are configured.
The following _i_o_c_t_l 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 typing ^S).
Takes no parameter.
TIOCPKT
Enable/disable _p_a_c_k_e_t mode. Packet mode is enabled by
specifying (by reference) a nonzero parameter and dis-
abled by specifying (by reference) a zero parameter.
When applied to the master side of a pseudo terminal,
each subsequent _r_e_a_d from the terminal will return data
written on the slave part of the pseudo terminal pre-
ceded by a zero byte (symbolically defined as
TIOCPKT_DATA), or a single byte reflecting 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
Printed 11/26/99 May 19, 1986 1
PTY(4) UNIX Programmer's Manual PTY(4)
flushed.
TIOCPKT_STOP
whenever output to the terminal is stopped a la
^S.
TIOCPKT_START
whenever output to the terminal is restarted.
TIOCPKT_DOSTOP
whenever _t__s_t_o_p_c is ^S and _t__s_t_a_r_t_c 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 information to be read from the master side may
be detected by a _s_e_l_e_c_t for exceptional conditions.
This mode is used by _r_l_o_g_i_n(1C) and _r_l_o_g_i_n_d(8C) to
implement a remote-echoed, locally ^S/^Q flow-
controlled 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 _i_o_c_t_l commands to be passed through the
pseudo-terminal, using a protocol similar to that of
TIOCPKT. The TIOCUCNTL and TIOCPKT modes are mutually
exclusive. This mode is enabled from the master side
of a pseudo terminal by specifying (by reference) a
nonzero parameter and disabled by specifying (by refer-
ence) a zero parameter. Each subsequent _r_e_a_d 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 operation on the
slave side. A user control command consists of a spe-
cial _i_o_c_t_l 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 _r_e_a_d from the master side. The _i_o_c_t_l
UIOCCMD(0) is a no-op that may be used to probe for the
existence of this facility. As with TIOCPKT mode, com-
mand operations may be detected with a _s_e_l_e_c_t for
exceptional conditions.
TIOCREMOTE
A mode for the master half of a pseudo terminal,
independent of TIOCPKT. This mode causes input to the
pseudo terminal to be flow controlled and not input
edited (regardless of the terminal mode). Each write
Printed 11/26/99 May 19, 1986 2
PTY(4) UNIX Programmer's Manual PTY(4)
to the control terminal produces a record boundary for
the process reading the terminal. In normal usage, a
write of data is like the data typed as a line on the
terminal; a write of 0 bytes is like typing an end-of-
file character. TIOCREMOTE can be used when doing
remote line editing in a window manager, or whenever
flow controlled input is required.
FILES
/dev/pty[p-r][0-9a-f] master pseudo terminals
/dev/tty[p-r][0-9a-f] slave pseudo terminals
DIAGNOSTICS
None.
Printed 11/26/99 May 19, 1986 3