p In configuring, if an optional .Ar count is given in the specification, that number of pseudo terminal pairs are configured; the default count is 32.
p The following .Xr ioctl 2 calls apply only to pseudo terminals: l -tag -width TIOCREMOTE t Dv TIOCSTOP Stops output to a terminal (e.g. like typing .Ql ^S ) . Takes no parameter. t Dv TIOCSTART Restarts output (stopped by .Dv TIOCSTOP or by typing .Ql ^S ) . Takes no parameter. t Dv TIOCPKT Enable/disable .Em packet mode. Packet mode is enabled by specifying (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 subsequent .Xr read from the terminal will return data written on the slave part of the pseudo terminal preceded by a zero byte (symbolically defined as .Dv 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: l -tag -width TIOCPKT_FLUSHWRITE t Dv TIOCPKT_FLUSHREAD whenever the read queue for the terminal is flushed. t Dv TIOCPKT_FLUSHWRITE whenever the write queue for the terminal is flushed. t Dv TIOCPKT_STOP whenever output to the terminal is stopped a la .Ql ^S . t Dv TIOCPKT_START whenever output to the terminal is restarted. t Dv TIOCPKT_DOSTOP whenever .Em t_stopc is .Ql ^S and .Em t_startc is .Ql ^Q . t Dv TIOCPKT_NOSTOP whenever the start and stop characters are not .Ql ^S/^Q .
p While this mode is in use, the presence of control status information to be read from the master side may be detected by a .Xr select 2 for exceptional conditions.
p This mode is used by .Xr rlogin 1 and .Xr rlogind 8 to implement a remote-echoed, locally .Ql ^S/^Q flow-controlled remote login with proper back-flushing of output; it can be used by other similar programs. .El t Dv TIOCUCNTL Enable/disable a mode that allows a small number of simple user .Xr ioctl commands to be passed through the pseudo-terminal, using a protocol similar to that of .Dv TIOCPKT . The .Dv TIOCUCNTL and .Dv 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 .Xr read 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 .Xr ioctl operation with no data; the command is given as .Dv UIOCCMD Ns (n) , where .Ar n is a number in the range 1-255. The operation value .Ar n will be received as a single byte on the next .Xr read from the master side. The .Xr ioctl .Dv UIOCCMD Ns (0) is a no-op that may be used to probe for the existence of this facility. As with .Dv TIOCPKT mode, command operations may be detected with a .Xr select for exceptional conditions. t Dv TIOCREMOTE A mode for the master half of a pseudo terminal, independent of .Dv 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. .Dv TIOCREMOTE can be used when doing remote line editing in a window manager, or whenever flow controlled input is required. .El .Sh FILES l -tag -width /dev/tty[p-r][0-9a-f]x -compact t Pa /dev/pty[p-r][0-9a-f] master pseudo terminals t Pa /dev/tty[p-r][0-9a-f] slave pseudo terminals .El .Sh DIAGNOSTICS None. .Sh HISTORY The .Nm driver appeared in x 4.2 .