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