In configuring, if an optional count is given in the specification, that number of pseudo terminal pairs is initially configured; the default count is 16. Additional pseudo terminal pairs are allocated on as-needed basis, maximum number of them is controlled via kern.maxptys sysctl (defaults to 992).
The following ioctl(2) calls apply only to pseudo terminals:
TIOCSTOP
TIOCSTART
TIOCSTOP
or by typing
`^S').
Takes no parameter.
TIOCPKT
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
TIOCPKT_FLUSHWRITE
TIOCPKT_STOP
TIOCPKT_START
TIOCPKT_DOSTOP
TIOCPKT_NOSTOP
While this mode is in use, the presence of control status information 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-controlled remote login with proper back-flushing of output; it can be used by other similar programs.
TIOCPKT_IOCTL
This is used by telnetd(8) to implement TELNET "line mode" - it allows the telnetd(8) to detect tty(4) state changes by the slave, and negotiate the appropriate TELNET protocol equivalents with the remote peer.
TIOCUCNTL
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 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 operation 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 existence of this facility.
As with
TIOCPKT
mode, command operations may be detected with a
select(2)
for exceptional conditions.
TIOCREMOTE
TIOCPKT
.
This mode causes input to the pseudo terminal to be flow controlled
and not input edited (regardless of the terminal mode).
Each write 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.
/dev/pty[p-zP-T][0-9a-zA-Z]
/dev/tty[p-zP-T][0-9a-zA-Z]