1 .\" Copyright (c) 1983, 1991, 1993
2 .\" The Regents of the University of California. All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
12 .\" 3. All advertising materials mentioning features or use of this software
13 .\" must display the following acknowledgement:
14 .\" This product includes software developed by the University of
15 .\" California, Berkeley and its contributors.
16 .\" 4. Neither the name of the University nor the names of its contributors
17 .\" may be used to endorse or promote products derived from this software
18 .\" without specific prior written permission.
20 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
21 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
24 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
25 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
26 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
28 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
29 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
32 .\" @(#)pty.4 8.2 (Berkeley) 11/30/93
33 .\" $FreeBSD: src/share/man/man4/pty.4,v 1.8.2.3 2001/08/17 13:08:39 ru Exp $
40 .Nd pseudo terminal driver
42 .Cd "pseudo-device pty"
46 driver provides support for a device-pair termed a
48 A pseudo terminal is a pair of character devices, a
52 device. The slave device provides to a process
53 an interface identical
56 However, whereas all other devices which provide the
57 interface described in
59 have a hardware device of some sort behind them, the slave
60 device has, instead, another process manipulating
61 it through the master half of the pseudo terminal.
62 That is, anything written on the master device is
63 given to the slave device as input and anything written
64 on the slave device is presented as input on the master
69 calls apply only to pseudo terminals:
70 .Bl -tag -width TIOCREMOTE
72 Stops output to a terminal (e.g. like typing
77 Restarts output (stopped by
85 mode. Packet mode is enabled by specifying (by reference)
86 a nonzero parameter and disabled by specifying (by reference)
87 a zero parameter. When applied to the master side of a pseudo
88 terminal, each subsequent
90 from the terminal will return data written on the slave part of
91 the pseudo terminal preceded by a zero byte (symbolically
94 or a single byte reflecting control
95 status information. In the latter case, the byte is an inclusive-or
96 of zero or more of the bits:
97 .Bl -tag -width TIOCPKT_FLUSHWRITE
98 .It Dv TIOCPKT_FLUSHREAD
99 whenever the read queue for the terminal is flushed.
100 .It Dv TIOCPKT_FLUSHWRITE
101 whenever the write queue for the terminal is flushed.
103 whenever output to the terminal is stopped a la
106 whenever output to the terminal is restarted.
107 .It Dv TIOCPKT_DOSTOP
116 .It Dv TIOCPKT_NOSTOP
117 whenever the start and stop characters are not
120 While this mode is in use, the presence of control status information
121 to be read from the master side may be detected by a
123 for exceptional conditions.
129 to implement a remote-echoed, locally
132 remote login with proper back-flushing of output; it can be
133 used by other similar programs.
136 Enable/disable a mode that allows a small number of simple user
138 commands to be passed through the pseudo-terminal,
139 using a protocol similar to that of
145 modes are mutually exclusive.
146 This mode is enabled from the master side of a pseudo terminal
147 by specifying (by reference)
148 a nonzero parameter and disabled by specifying (by reference)
152 from the master side will return data written on the slave part of
153 the pseudo terminal preceded by a zero byte,
154 or a single byte reflecting a user control operation on the slave side.
155 A user control command consists of a special
157 operation with no data; the command is given as
161 is a number in the range 1-255.
164 will be received as a single byte on the next
166 from the master side.
170 is a no-op that may be used to probe for
171 the existence of this facility.
174 mode, command operations may be detected with a
176 for exceptional conditions.
178 A mode for the master half of a pseudo terminal, independent
181 This mode causes input to the pseudo terminal
182 to be flow controlled and not input edited (regardless of the
183 terminal mode). Each write to the control terminal produces
184 a record boundary for the process reading the terminal. In
185 normal usage, a write of data is like the data typed as a line
186 on the terminal; a write of 0 bytes is like typing an end-of-file
189 can be used when doing remote line
190 editing in a window manager, or whenever flow controlled input
194 .Bl -tag -width /dev/tty[p-sP-S][0-9a-v]x -compact
195 .It Pa /dev/pty[p-sP-S][0-9a-v]
196 master pseudo terminals
197 .It Pa /dev/tty[p-sP-S][0-9a-v]
198 slave pseudo terminals