1 .\" Copyright (c) 1991, 1992, 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. Neither the name of the University nor the names of its contributors
13 .\" may be used to endorse or promote products derived from this software
14 .\" without specific prior written permission.
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" @(#)termios.4 8.4 (Berkeley) 4/19/94
36 .Nd general terminal line discipline
40 This describes a general terminal line discipline that is
41 supported on tty asynchronous communication ports.
42 .Ss Opening a Terminal Device File
43 When a terminal file is opened, it normally causes the process to wait
44 until a connection is established.
45 For most hardware, the presence
46 of a connection is indicated by the assertion of the hardware
49 If the termios structure associated with the terminal file has the
51 flag set in the cflag, or if the
56 call, then the open will succeed even without
57 a connection being present.
58 In practice, applications
59 seldom open these files; they are opened by special programs, such
65 an application's standard input, output, and error files.
66 .Ss Job Control in a Nutshell
67 Every process is associated with a particular process group and session.
68 The grouping is hierarchical: every member of a particular process group is a
69 member of the same session.
70 This structuring is used in managing groups
71 of related processes for purposes of
72 .\" .Gw "job control" ;
75 ability from the keyboard (or from program control) to simultaneously
77 a complex command (a command composed of one or more related
79 The grouping into process groups allows delivering
80 of signals that stop or start the group as a whole, along with
81 arbitrating which process group has access to the single controlling
83 The grouping at a higher layer into sessions is to restrict
84 the job control related signals and system calls to within processes
85 resulting from a particular instance of a
88 is created when a user logs in, and the login terminal is setup
89 to be the controlling terminal; all processes spawned from that
90 login shell are in the same session, and inherit the controlling
94 operating interactively (that is, reading commands from a terminal)
95 normally groups related processes together by placing them into the
97 A set of processes in the same process group
98 is collectively referred to as a
100 When the foreground process
101 group of the terminal is the same as the process group of a particular
102 job, that job is said to be in the
104 When the process group of the terminal is different from the process group of
105 a job (but is still the controlling terminal), that job is said
109 shell reads a command and starts the job that implements that
111 If the command is to be started in the foreground (typical), it
112 sets the process group of the terminal to the process group
113 of the started job, waits for the job to complete, and then
114 sets the process group of the terminal back to its own process
115 group (it puts itself into the foreground).
117 be started in the background (as denoted by the shell operator "&"),
118 it never changes the process group of the terminal and does not
119 wait for the job to complete (that is, it immediately attempts to read the next
121 If the job is started in the foreground, the user may
124 which generates the terminal stop signal
126 and has the effect of stopping the entire job.
127 The shell will notice that the job stopped, and will resume running after
128 placing itself in the foreground.
129 The shell also has commands for placing stopped jobs in the background,
130 and for placing stopped or background jobs into the foreground.
131 .Ss Orphaned Process Groups
132 An orphaned process group is a process group that has no process
133 whose parent is in a different process group, yet is in the same
135 Conceptually it means a process group that does not have
136 a parent that could do anything if it were to be stopped.
138 the initial login shell is typically in an orphaned process group.
139 Orphaned process groups are immune to keyboard generated stop
140 signals and job control signals resulting from reads or writes to the
141 controlling terminal.
142 .Ss The Controlling Terminal
143 A terminal may belong to a process as its controlling terminal.
145 process of a session that has a controlling terminal has the same
146 controlling terminal.
147 A terminal may be the controlling terminal for at
149 The controlling terminal for a session is allocated by
150 the session leader by issuing the
153 A controlling terminal
154 is never acquired by merely opening a terminal device file.
155 When a controlling terminal becomes
156 associated with a session, its foreground process group is set to
157 the process group of the session leader.
159 The controlling terminal is inherited by a child process during a
162 A process relinquishes its controlling terminal when it
163 creates a new session with the
165 function; other processes
166 remaining in the old session that had this terminal as their controlling
167 terminal continue to have it.
168 A process does not relinquish its
169 controlling terminal simply by closing all of its file descriptors
170 associated with the controlling terminal if other processes continue to
173 When a controlling process terminates, the controlling terminal is
174 disassociated from the current session, allowing it to be acquired by a
176 Subsequent access to the terminal by other processes
177 in the earlier session will be denied, with attempts to access the
178 terminal treated as if modem disconnect had been sensed.
179 .Ss Terminal Access Control
180 If a process is in the foreground process group of its controlling
181 terminal, read operations are allowed.
182 Any attempts by a process
183 in a background process group to read from its controlling terminal
189 following special cases apply: if the reading process is ignoring or
192 signal, or if the process group of the reading
193 process is orphaned, the
201 The default action of the
203 signal is to stop the
204 process to which it is sent.
206 If a process is in the foreground process group of its controlling
207 terminal, write operations are allowed.
208 Attempts by a process in a background process group to write to its
209 controlling terminal will cause the process group to be sent a
211 signal unless one of the following special cases apply: if
216 is set and the process is ignoring or blocking the
218 signal, the process is allowed to write to the terminal and the
223 is set, and the process group of
224 the writing process is orphaned, and the writing process is not ignoring
232 and no signal is sent.
234 Certain calls that set terminal parameters are treated in the same
235 fashion as write, except that
237 is ignored; that is, the effect is
238 identical to that of terminal writes when
241 .Ss Input Processing and Reading Data
242 A terminal device associated with a terminal device file may operate in
243 full-duplex mode, so that data may arrive even while output is occurring.
244 Each terminal device file has associated with it an input queue, into
245 which incoming data is stored by the system before being read by a
247 The system imposes a limit,
248 .Pf \&{ Dv MAX_INPUT Ns \&} ,
250 bytes that may be stored in the input queue.
251 The behavior of the system
252 when this limit is exceeded depends on the setting of the
256 If this flag is set, the terminal
260 character each time a character is received
261 while the input queue is full.
262 Otherwise, the input queue is flushed upon receiving the character.
264 Two general kinds of input processing are available, determined by
265 whether the terminal device file is in canonical mode or noncanonical
268 input characters are processed according to the
273 Such processing can include echoing, which
274 in general means transmitting input characters immediately back to the
275 terminal when they are received from the terminal.
276 This is useful for terminals that can operate in full-duplex mode.
278 The manner in which data is provided to a process reading from a terminal
279 device file is dependent on whether the terminal device file is in
280 canonical or noncanonical mode.
282 Another dependency is whether the
290 flag is clear, then the read request is
291 blocked until data is available or a signal has been received.
294 flag is set, then the read request is completed, without
295 blocking, in one of three ways:
296 .Bl -enum -offset indent
298 If there is enough data available to satisfy the entire request,
299 and the read completes successfully the number of
300 bytes read is returned.
302 If there is not enough data available to satisfy the entire
303 request, and the read completes successfully, having read as
304 much data as possible, the number of bytes read is returned.
306 If there is no data available, the read returns -1, with
311 When data is available depends on whether the input processing mode is
312 canonical or noncanonical.
313 .Ss Canonical Mode Input Processing
314 In canonical mode input processing, terminal input is processed in units
316 A line is delimited by a newline
318 character, an end-of-file
320 character, or an end-of-line
324 .Sx "Special Characters"
330 This means that a read request will
331 not return until an entire line has been typed, or a signal has been
333 Also, no matter how many bytes are requested in the read call,
334 at most one line is returned.
335 It is not, however, necessary to
336 read a whole line at once; any number of bytes, even one, may be
337 requested in a read without losing information.
339 .Pf \&{ Dv MAX_CANON Ns \&}
341 number of bytes in a line.
342 The behavior of the system when this limit is
343 exceeded is the same as when the input queue limit
344 .Pf \&{ Dv MAX_INPUT Ns \&} ,
347 Erase and kill processing occur when either of two special characters,
353 .Sx "Special Characters"
354 section), is received.
355 This processing affects data in the input queue that has not yet been
356 delimited by a newline
363 data makes up the current line.
366 character deletes the last
367 character in the current line, if there is any.
371 deletes all data in the current line, if there is any.
376 characters have no effect if there is no data in the current line.
381 characters themselves are not placed in the input
383 .Ss Noncanonical Mode Input Processing
384 In noncanonical mode input processing, input bytes are not assembled into
385 lines, and erase and kill processing does not occur.
392 array are used to determine how to
393 process the bytes received.
396 represents the minimum number of bytes that should be received when
399 function successfully returns.
401 is a timer of 0.1 second
402 granularity that is used to time out bursty and short term data
407 .Dv \&{ Dv MAX_INPUT Ns \&} ,
409 request is undefined.
410 The four possible values for
415 their interactions are described below.
416 .Ss "Case A: MIN > 0, TIME > 0"
419 serves as an inter-byte timer and is activated after
420 the first byte is received.
421 Since it is an inter-byte timer, it is reset
422 after a byte is received.
423 The interaction between
428 follows: as soon as one byte is received, the inter-byte timer is
432 bytes are received before the inter-byte timer expires
433 (remember that the timer is reset upon receipt of each byte), the read is
435 If the timer expires before
437 bytes are received, the
438 characters received to that point are returned to the user.
441 expires at least one byte is returned because the timer would
442 not have been enabled unless a byte was received.
447 > 0) the read blocks until the
452 activated by the receipt of the first byte, or a signal is received.
453 If data is in the buffer at the time of the
456 if data had been received immediately after the
458 .Ss "Case B: MIN > 0, TIME = 0"
459 In this case, since the value of
461 is zero, the timer plays no role
465 A pending read is not satisfied until
467 bytes are received (i.e., the pending read blocks until
470 are received), or a signal is received.
471 A program that uses this case to read record-based terminal
473 may block indefinitely in the read
475 .Ss "Case C: MIN = 0, TIME > 0"
480 no longer represents an inter-byte
482 It now serves as a read timer that is activated as soon as the
483 read function is processed.
484 A read is satisfied as soon as a single
485 byte is received or the read timer expires.
486 Note that in this case if the timer expires, no bytes are returned.
487 If the timer does not
488 expire, the only way the read can be satisfied is if a byte is received.
489 In this case the read will not block indefinitely waiting for a byte; if
490 no byte is received within
492 seconds after the read is initiated,
493 the read returns a value of zero, having read no data.
495 in the buffer at the time of the read, the timer is started as if
496 data had been received immediately after the read.
497 .Ss Case D: MIN = 0, TIME = 0
498 The minimum of either the number of bytes requested or the number of
499 bytes currently available is returned without waiting for more
501 If no characters are available, read returns a
502 value of zero, having read no data.
503 .Ss Writing Data and Output Processing
504 When a process writes one or more bytes to a terminal device file, they
505 are processed according to the
511 implementation may provide a buffering mechanism; as such, when a call to
513 completes, all of the bytes written have been scheduled for
514 transmission to the device, but the transmission will not necessarily
516 .\" See also .Sx "6.4.2" for the effects of
519 .Ss Special Characters
520 Certain characters have special functions on input or output or both.
521 These functions are summarized as follows:
522 .Bl -tag -width indent
524 Special character on input and is recognized if the
531 signal which is sent to all processes in the foreground
532 process group for which the terminal is the controlling
539 discarded when processed.
541 Special character on input and is recognized if the
547 sent to all processes in the foreground process group
548 for which the terminal is the controlling terminal.
553 character is discarded when
556 Special character on input and is recognized if the
559 Erases the last character in the
561 .Sx "Canonical Mode Input Processing" .
562 It does not erase beyond
563 the start of a line, as delimited by an
574 discarded when processed.
576 Special character on input and is recognized if the
579 Deletes the entire line, as
590 character is discarded when processed.
592 Special character on input and is recognized if the
595 When received, all the bytes
596 waiting to be read are immediately passed to the
597 process, without waiting for a newline, and the
600 Thus, if there are no bytes waiting (that is, the
602 occurred at the beginning of a line), a byte
603 count of zero is returned from the
605 representing an end-of-file indication.
611 character is discarded when processed.
613 Special character on input and is recognized if the
616 It is the line delimiter
619 Special character on input and is recognized if the
622 Is an additional line delimiter, like
627 flag is enabled, receipt of the
631 signal to be sent to all processes in the
632 foreground process group for which the terminal is the
633 controlling terminal, and the
636 discarded when processed.
638 Special character on both input and output and is
644 control) flag is set.
645 Can be used to temporarily suspend output.
646 It is useful with fast terminals to
647 prevent output from disappearing before it can be read.
652 character is discarded when
655 Special character on both input and output and is
661 control) flag is set.
662 Can be used to resume output that has been suspended by a
669 character is discarded when processed.
671 Special character on input and is recognized if the
673 flag is set; it is the
684 is not set, this character is translated into a
687 has the same effect as a
692 The following special characters are extensions defined by this
693 system and are not a part of
696 .Bl -tag -width indent
704 Special character on input and is recognized if the
707 Erases the last word in the current line according to one of two algorithms.
710 flag is not set, first any preceding whitespace is
711 erased, and then the maximal sequence of non-whitespace
715 is set, first any preceding
716 whitespace is erased, and then the maximal sequence
717 of alphabetic/underscores or non alphabetic/underscores.
718 As a special case in this second algorithm, the first previous
719 non-whitespace character is skipped in determining
720 whether the preceding word is a sequence of
721 alphabetic/underscores.
722 This sounds confusing but turns out to be quite practical.
724 Special character on input and is recognized if the
727 Causes the current input edit line to be retyped.
729 Has similar actions to the
731 character, except that
734 signal is delivered when one of the processes
735 in the foreground process group issues a
738 controlling terminal.
740 Special character on input and is recognized if the
743 Receipt of this character causes the next character to be taken literally.
745 Special character on input and is recognized if the
748 Receipt of this character toggles the flushing of terminal output.
750 Special character on input and is recognized if the
753 Receipt of this character causes a
755 signal to be sent to the foreground process group of the
760 causes the kernel to write a status message to the terminal
761 that displays the current load average, the name of the
762 command in the foreground, its process ID, the symbolic
763 wait channel, the number of user and system seconds used,
764 the percentage of cpu the process is getting, and the resident
765 set size of the process.
772 characters cannot be changed.
773 The values for all the remaining characters can be set and are
774 described later in the document under
775 Special Control Characters.
778 character functions associated with changeable special control characters
779 can be disabled individually by setting their value to
780 .Dv {_POSIX_VDISABLE} ;
782 .Sx "Special Control Characters" .
784 If two or more special characters have the same value, the function
785 performed when that character is received is undefined.
787 If a modem disconnect is detected by the terminal interface for a
788 controlling terminal, and if
795 signal is sent to the controlling
796 process associated with the terminal.
797 Unless other arrangements have
798 been made, this causes the controlling process to terminate.
799 Any subsequent call to the
801 function returns the value zero,
802 indicating end of file.
803 Thus, processes that read a terminal
804 file and test for end-of-file can terminate appropriately after a
808 .\" condition specified in 6.1.1.4 that applies
809 .\" when the implementation supports job control also exists, it is
810 .\" unspecified whether the
818 to the terminal device returns -1, with
822 until the device is closed.
823 .Sh General Terminal Interface
824 .Ss Closing a Terminal Device File
825 The last process to close a terminal device file causes any output
826 to be sent to the device and any input to be discarded.
829 is set in the control modes, and the communications port supports a
830 disconnect function, the terminal device performs a disconnect.
831 .Ss Parameters That Can Be Set
832 Routines that need to control certain terminal
835 do so by using the termios structure as defined in the header
837 This structure contains minimally four scalar elements of bit flags
838 and one array of special characters.
839 The scalar flag elements are named:
845 The character array is named
847 and its maximum index is
852 field describe the basic
853 terminal input control, and are composed of
856 .Bl -tag -width IMAXBEL -offset indent -compact
858 /* ignore BREAK condition */
860 /* map BREAK to SIGINTR */
862 /* ignore (discard) parity errors */
864 /* mark parity and framing errors */
866 /* enable checking of parity errors */
868 /* strip 8th bit off chars */
874 /* map CR to NL (ala CRMOD) */
876 /* enable output flow control */
878 /* enable input flow control */
880 /* any char will restart after stop */
882 /* ring bell on input queue full */
885 In the context of asynchronous serial data transmission, a break
886 condition is defined as a sequence of zero-valued bits that continues for
887 more than the time to send one byte.
888 The entire sequence of zero-valued
889 bits is interpreted as a single break condition, even if it continues for
890 a time equivalent to more than one byte.
891 In contexts other than
892 asynchronous serial data transmission the definition of a break condition
893 is implementation defined.
897 is set, a break condition detected on input is ignored, that
898 is, not put on the input queue and therefore not read by any process.
903 is set, the break condition flushes the
904 input and output queues and if the terminal is the controlling terminal
905 of a foreground process group, the break condition generates a
908 signal to that foreground process group.
913 is set, a break condition is read as a single
924 is set, a byte with a framing or parity error (other than
931 is not set, a byte with a framing or parity
932 error (other than break) is given to the application as the
933 three-character sequence
940 flag preceding each sequence and X is the data of the character received
942 To avoid ambiguity in this case, if
947 is given to the application as
955 is set, a framing or parity error (other than
956 break) is given to the application as a single character
961 is set, input parity checking is enabled.
965 input parity checking is disabled, allowing output parity generation
966 without input parity errors.
967 Note that whether input parity checking is
968 enabled or disabled is independent of whether parity detection is enabled
970 .Sx "Control Modes" ) .
971 If parity detection is enabled but input
972 parity checking is disabled, the hardware to which the terminal is
973 connected recognizes the parity bit, but the terminal special file
974 does not check whether this bit is set correctly or not.
978 is set, valid input bytes are first stripped to seven bits,
979 otherwise all eight bits are processed.
985 character is translated into a
992 character is ignored (not
1007 is set, start/stop output control is enabled.
1010 character suspends output and a received
1016 is also set, then any character may
1025 read, but merely perform flow control functions.
1033 characters are read.
1037 is set, start/stop input control is enabled.
1038 The system shall transmit one or more
1040 characters, which are intended to cause the
1041 terminal device to stop transmitting data, as needed to prevent the input
1042 queue from overflowing and causing the undefined behavior described in
1043 .Sx "Input Processing and Reading Data" ,
1044 and shall transmit one or more
1046 characters, which are
1047 intended to cause the terminal device to resume transmitting data, as
1048 soon as the device can continue transmitting data without risk of
1049 overflowing the input queue.
1050 The precise conditions under which
1054 characters are transmitted are implementation defined.
1058 is set and the input queue is full, subsequent input shall cause an
1061 character to be transmitted to
1064 The initial input control value after
1066 is implementation defined.
1070 field describe the basic terminal output control,
1071 and are composed of the following masks:
1073 .Bl -tag -width ONOEOT -offset indent -compact
1075 /* enable following output processing */
1077 /* map NL to CR-NL (ala
1083 /* tab delay mask */
1085 /* no tab delay and expansion */
1087 /* expand tabs to spaces */
1094 /* do not transmit CRs on column 0 */
1096 /* on the terminal NL performs the CR function */
1101 is set, the remaining flag masks are interpreted as follows;
1102 otherwise characters are transmitted without change.
1106 is set, newlines are translated to carriage return, linefeeds.
1110 is set, carriage returns are translated to newlines.
1114 bits specify the tab delay.
1119 and compared with the
1126 is set, tabs are expanded to the appropriate number of
1127 spaces (assuming 8 column tab stops).
1134 are discarded on output.
1138 is set, no CR character is transmitted when at column 0 (first position).
1142 is set, the NL character is assumed to do the carriage-return function;
1143 the column pointer will be set to 0.
1147 field describe the basic
1148 terminal hardware control, and are composed of the
1151 specified are supported by all hardware.
1153 .Bl -tag -width CRTSXIFLOW -offset indent -compact
1155 /* character size mask */
1157 /* 5 bits (pseudo) */
1165 /* send 2 stop bits */
1167 /* enable receiver */
1171 /* odd parity, else even */
1173 /* hang up on last close */
1175 /* ignore modem status lines */
1179 flow control of output */
1185 /* RTS flow control of input */
1187 /* flow control output via Carrier */
1192 bits specify the byte size in bits for both transmission and
1198 and compared with the
1205 This size does not include the parity bit, if any.
1208 is set, two stop bits are used, otherwise one stop bit.
1209 For example, at 110 baud, two stop bits are normally used.
1213 is set, the receiver is enabled.
1214 Otherwise, no character is received.
1215 Not all hardware supports this bit.
1216 In fact, this flag is pretty silly and if it were not part of the
1219 it would be omitted.
1223 is set, parity generation and detection are enabled and a parity
1224 bit is added to each character.
1225 If parity is enabled,
1228 odd parity if set, otherwise even parity is used.
1232 is set, the modem control lines for the port are lowered
1233 when the last process with the port open closes the port or the process
1235 The modem connection is broken.
1239 is set, a connection does not depend on the state of the modem
1243 is clear, the modem status lines are
1246 Under normal circumstances, a call to the
1249 the modem connection to complete.
1258 immediately without waiting for the connection.
1263 flag is currently unused.
1267 is set then output flow control is controlled by the state
1270 If the object for which the control modes are set is not an asynchronous
1271 serial connection, some of the modes may be ignored; for example, if an
1272 attempt is made to set the baud rate on a network connection to a
1273 terminal on another host, the baud rate may or may not be set on the
1274 connection between that terminal and the machine it is directly connected
1279 field describe the control of
1280 various functions, and are composed of the following
1283 .Bl -tag -width NOKERNINFO -offset indent -compact
1285 /* visual erase for line kill */
1287 /* visually erase chars */
1289 /* enable echoing */
1297 /* visual erase mode for hardcopy */
1299 /* echo control chars as ^(Char) */
1307 /* canonicalize input lines */
1319 /* external processing */
1321 /* stop background jobs from output */
1323 /* output being flushed (state) */
1325 /* no kernel output from
1329 /* XXX retype pending input (state) */
1331 /* don't flush after interrupt */
1336 is set, input characters are echoed back to the terminal.
1339 is not set, input characters are not echoed.
1347 character causes the terminal
1348 to erase the last character in the current line from the display, if
1350 If there is no character to erase, an implementation may echo
1351 an indication that this was the case or do nothing.
1360 the current line to be discarded and the system echoes the
1373 the current line to be discarded and the system causes
1375 to erase the line from the display.
1381 are set, the system assumes
1382 that the display is a printing device and prints a
1383 backslash and the erased characters when processing
1385 characters, followed by a forward slash.
1389 is set, the system echoes control characters
1390 in a visible fashion using a caret followed by the control character.
1394 is set, the system uses an alternative algorithm
1395 for determining what constitutes a word when processing
1406 character echoes even if
1412 is set, canonical processing is enabled.
1414 erase and kill edit functions, and the assembly of input characters into
1421 .Sx "Canonical Mode Input Processing" .
1425 is not set, read requests are satisfied directly from the input
1427 A read is not satisfied until at least
1430 received or the timeout value
1432 expired between bytes.
1434 represents tenths of seconds.
1436 .Sx "Noncanonical Mode Input Processing"
1441 is set, each input character is checked against the special
1449 character matches one of these control characters, the function
1450 associated with that character is performed.
1455 Thus these special input functions are possible only
1462 is set, implementation-defined functions are recognized
1463 from the input data.
1473 is implementation defined.
1477 implementation-defined functions are not recognized, and the
1478 corresponding input characters are not processed as described for
1487 is set, the normal flush of the input and output queues
1500 is sent to the process group of a process that tries to write to
1501 its controlling terminal if it is not in the foreground process group for
1503 This signal, by default, stops the members of the process group.
1504 Otherwise, the output generated by that process is output to the
1505 current output stream.
1506 Processes that are blocking or ignoring
1508 signals are excepted and allowed to produce output and the
1515 is set, the kernel does not produce a status message
1520 .Ss Special Control Characters
1521 The special control characters values are defined by the array
1523 This table lists the array index, the corresponding special character,
1524 and the system default value.
1525 For an accurate list of
1526 the system defaults, consult the header file
1527 .In sys/ttydefaults.h .
1529 .Bl -column "Index Name" "Special Character" -offset indent -compact
1530 .It Em "Index Name Special Character Default Value"
1531 .It Dv VEOF Ta EOF Ta \&^D
1532 .It Dv VEOL Ta EOL Ta _POSIX_VDISABLE
1533 .It Dv VEOL2 Ta EOL2 Ta _POSIX_VDISABLE
1534 .It Dv VERASE Ta ERASE Ta \&^? Ql \&\e177
1535 .It Dv VWERASE Ta WERASE Ta \&^W
1536 .It Dv VKILL Ta KILL Ta \&^U
1537 .It Dv VREPRINT Ta REPRINT Ta \&^R
1538 .It Dv VINTR Ta INTR Ta \&^C
1539 .It Dv VQUIT Ta QUIT Ta \&^\e\e Ql \&\e34
1540 .It Dv VSUSP Ta SUSP Ta \&^Z
1541 .It Dv VDSUSP Ta DSUSP Ta \&^Y
1542 .It Dv VSTART Ta START Ta \&^Q
1543 .It Dv VSTOP Ta STOP Ta \&^S
1544 .It Dv VLNEXT Ta LNEXT Ta \&^V
1545 .It Dv VDISCARD Ta DISCARD Ta \&^O
1546 .It Dv VMIN Ta --- Ta \&1
1547 .It Dv VTIME Ta --- Ta \&0
1548 .It Dv VSTATUS Ta STATUS Ta \&^T
1552 value of one of the changeable special control characters (see
1553 .Sx "Special Characters" )
1555 .Dv {_POSIX_VDISABLE} ,
1556 that function is disabled; that is, no input
1557 data is recognized as the disabled special character.
1561 not set, the value of
1562 .Dv {_POSIX_VDISABLE}
1563 has no special meaning for the
1571 The initial values of the flags and control characters
1575 the values in the header
1576 .In sys/ttydefaults.h .