|
|
1.1 root 1: .\" Copyright (c) 1983 Regents of the University of California.
2: .\" All rights reserved. The Berkeley software License Agreement
3: .\" specifies the terms and conditions for redistribution.
4: .\"
5: .\" @(#)pty.4 6.2 (Berkeley) 5/19/86
6: .\"
7: .TH PTY 4 "May 19, 1986"
8: .UC 5
9: .SH NAME
10: pty \- pseudo terminal driver
11: .SH SYNOPSIS
12: .B pseudo-device pty [ count ]
13: .SH DESCRIPTION
14: The
15: .I pty
16: driver provides support for a device-pair termed a
17: .IR "pseudo terminal" .
18: A pseudo terminal is a pair of character devices, a
19: .I master
20: device and a
21: .I slave
22: device. The slave device provides processes
23: an interface identical
24: to that described in
25: .IR tty (4).
26: However, whereas all other devices which provide the
27: interface described in
28: .IR tty (4)
29: have a hardware device of some sort behind them, the slave
30: device has, instead, another process manipulating
31: it through the master half of the pseudo terminal.
32: That is, anything written on the master device is
33: given to the slave device as input and anything written
34: on the slave device is presented as input on the master
35: device.
36: .PP
37: In configuring, if an optional ``count'' is given in
38: the specification, that number of pseudo terminal pairs are configured;
39: the default count is 32.
40: .PP
41: The following
42: .I ioctl
43: calls apply only to pseudo terminals:
44: .TP
45: TIOCSTOP
46: Stops output to a terminal (e.g. like typing ^S). Takes
47: no parameter.
48: .TP
49: TIOCSTART
50: Restarts output (stopped by TIOCSTOP or by typing ^S).
51: Takes no parameter.
52: .TP
53: TIOCPKT
54: Enable/disable
55: .I packet
56: mode. Packet mode is enabled by specifying (by reference)
57: a nonzero parameter and disabled by specifying (by reference)
58: a zero parameter. When applied to the master side of a pseudo
59: terminal, each subsequent
60: .I read
61: from the terminal will return data written on the slave part of
62: the pseudo terminal preceded by a zero byte (symbolically
63: defined as TIOCPKT_DATA), or a single byte reflecting control
64: status information. In the latter case, the byte is an inclusive-or
65: of zero or more of the bits:
66: .RS
67: .TP
68: TIOCPKT_FLUSHREAD
69: whenever the read queue for the terminal is flushed.
70: .TP
71: TIOCPKT_FLUSHWRITE
72: whenever the write queue for the terminal is flushed.
73: .TP
74: TIOCPKT_STOP
75: whenever output to the terminal is stopped a la ^S.
76: .TP
77: TIOCPKT_START
78: whenever output to the terminal is restarted.
79: .TP
80: TIOCPKT_DOSTOP
81: whenever
82: .I t_stopc
83: is ^S
84: and
85: .I t_startc
86: is ^Q.
87: .TP
88: TIOCPKT_NOSTOP
89: whenever the start and stop characters are not ^S/^Q.
90: .RE
91: .IP
92: While this mode is in use, the presence of control status information
93: to be read from the master side may be detected by a
94: .I select
95: for exceptional conditions.
96: .IP
97: This mode is used by
98: .IR rlogin (1C)
99: and
100: .IR rlogind (8C)
101: to implement a remote-echoed, locally ^S/^Q flow-controlled
102: remote login with proper back-flushing of output; it can be
103: used by other similar programs.
104: .TP
105: TIOCUCNTL
106: Enable/disable a mode that allows a small number of simple user
107: .I ioctl
108: commands to be passed through the pseudo-terminal,
109: using a protocol similar to that of TIOCPKT.
110: The TIOCUCNTL and TIOCPKT modes are mutually exclusive.
111: This mode is enabled from the master side of a pseudo terminal
112: by specifying (by reference)
113: a nonzero parameter and disabled by specifying (by reference)
114: a zero parameter.
115: Each subsequent
116: .I read
117: from the master side will return data written on the slave part of
118: the pseudo terminal preceded by a zero byte,
119: or a single byte reflecting a user control operation on the slave side.
120: A user control command consists of a special
121: .I ioctl
122: operation with no data; the command is given as UIOCCMD(\fIn\fP),
123: where \fIn\fP is a number in the range 1-255.
124: The operation value \fIn\fP will be received as a single byte on the next
125: .I read
126: from the master side.
127: The \fIioctl\fP UIOCCMD(0) is a no-op that may be used to probe for
128: the existence of this facility.
129: As with TIOCPKT mode, command operations may be detected with a
130: .I select
131: for exceptional conditions.
132: .TP
133: TIOCREMOTE
134: A mode for the master half of a pseudo terminal, independent
135: of TIOCPKT. This mode causes input to the pseudo terminal
136: to be flow controlled and not input edited (regardless of the
137: terminal mode). Each write to the control terminal produces
138: a record boundary for the process reading the terminal. In
139: normal usage, a write of data is like the data typed as a line
140: on the terminal; a write of 0 bytes is like typing an end-of-file
141: character. TIOCREMOTE can be used when doing remote line
142: editing in a window manager, or whenever flow controlled input
143: is required.
144: .SH FILES
145: .DT
146: /dev/pty[p-r][0-9a-f] master pseudo terminals
147: .br
148: /dev/tty[p-r][0-9a-f] slave pseudo terminals
149: .SH DIAGNOSTICS
150: None.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.