Manual Page Result
0
Command: termios.h | Section: 4 | Source: Digital UNIX | File: termios.h.4.gz
termios(4) Kernel Interfaces Manual termios(4)
NAME
termios, termios.h - Defines the structure of the termios file, which
provides the terminal interface for POSIX compatibility.
DESCRIPTION
The /usr/include/termios.h header file is used to obtain and modify at-
tributes required by the terminal driver. These attributes control in-
put and output processing. The definition values and structure in the
/usr/include/termios.h file are required for P1003.1 POSIX compliance.
The primary mechanism for obtaining and setting terminal driver parame-
ters is through the following POSIX functions: tcgetattr() tcsetattr()
cfgetispeed() cfgetospeed() cfsetospeed() cfsetispeed()
Optionally the termios values can be obtained or set using the termios
ioctls. See the tty(7) reference page. For compatibility the system
supports BSD and System V ioctls, but they are internally translated
into termios ioctls.
The termios structure in the <termios.h> header file contains the fol-
lowing fields: Describes the basic terminal input control. The possi-
ble input modes are: Ignores the break condition. If set, the break
condition is not put on the input queue and is therefore not read by
any process. Interrupts signal on the break condition. If set, the
break condition generates an interrupt signal and flushes both the in-
put and output queues. Ignores characters with parity errors. If set,
characters with other framing and parity errors are ignored. Marks
parity errors. If set, a character with a framing or parity error that
is not ignored is read as the 3-character sequence: 0377, 0, x, where
the x variable is the data of the character received in error. If the
ISTRIP mode is not set, then a valid character of 0377 is read as 0377,
0377 to avoid ambiguity. If the PARMRK mode is clear, a framing or par-
ity error that is not ignored is read as the null character. Enables
input parity checking. If set, input parity checking is enabled. If
clear, input parity checking is disabled. This allows for output par-
ity generation without input parity errors. Strips characters. If set,
valid input characters are first stripped to 7 bits; otherwise all 8
bits are processed. Maps new-line character (NL) to carriage return
(CR) on input. If set, a received NL character is translated into a CR
character. Ignores CR character. If set, a received CR character is
ignored (not read). Maps CR character to NL character on input. If
set, a received CR character is translated into a NL character. Maps
uppercase to lowercase on input. If set, a received uppercase, alpha-
betic character is translated into the corresponding lowercase charac-
ter. Enables start and stop output control. If set, a received STOP
character suspends output, and a received START character restarts out-
put. The START and STOP characters perform flow control functions but
are not read. Enables any character to restart output. If set, any in-
put character restarts output that was suspended. Enables start and
stop input control. If set, the system transmits a STOP character when
the input queue is nearly full and a START character when enough input
has been read that the queue is nearly empty again. Echoes the ASCII
BEL character if the input stream overflows. Further input is not
stored, but any input received prior to the overflow condition is re-
tained. If clear, the BEL character is not echoed, and the input in the
input queue is discarded if the input stream overflows. Specifies how
the system treats output. The possible output modes are: Postprocesses
output. If set, output characters are processed as indicated by the re-
maining flags; otherwise, characters are transmitted without change.
Maps lowercase to uppercase on output. If set, a lowercase alphabetic
character is transmitted as the corresponding uppercase character. This
function is often used in conjunction with the IUCLC input mode. Maps
NL to CR-NL on output. If set, the NL character is transmitted as the
CR-NL character pair. Maps CR to NL on output. If set, the CR charac-
ter is transmitted as the NL character. Indicates no CR output at col-
umn 0. If set, no CR character is transmitted at column 0 (first posi-
tion). NL performs CR function. If set, the NL character is assumed to
do the carriage return function. The column pointer is set to a value
of 0 and the delay specified for carriage return is used. Otherwise the
NL character is assumed to do the line feed function only; the column
pointer remains unchanged. The column pointer is also set to a value of
0 if the CR character is actually transmitted.
The delay bits specify how long a transmission stops to allow
for mechanical or other movement when certain characters are
sent to the terminal. The actual delays depend on line speed and
system load. Uses fill characters for delay. If set, fill char-
acters are transmitted for a delay instead of a timed delay.
This is useful for high baud rate terminals that need only a
minimal delay. Sets fill characters to the DEL value. If set,
the fill character is DEL. If this flag is clear, the fill char-
acter is null. Selects the newline character delays. This is a
mask to use before comparing to NL0 and NL1. Specifies no de-
lay. Specifies one delay of approximately 0.10 seconds. If ONL-
RET is set, the carriage return delays are used instead of the
newline delays. If OFILL is set, two fill characters are trans-
mitted. Selects the carriage return delays. This is a mask to
use before comparing to CR0, CR1, CR2, and CR3. Specifies no
delay. Specifies that the delay is dependent on the current
column position. If OFILL is set, this delay transmits two fill
characters. Specifies one delay of approximately 0.10 seconds.
If OFILL is set, this delay transmits four fill characters.
Specifies one delay of approximately 0.15 seconds. Selects the
horizontal tab delays. This is a mask to use before comparing to
TAB0, TAB1, TAB2, and TAB3. If OFILL is set, any of these delays
transmit two fill characters. Specifies no delay. Specifies
that the delay is dependent on the current column position. If
OFILL is set, two fill characters are transmitted. Specifies
one delay of approximately 0.10 seconds. Specifies that tabs
are to be expanded into spaces. Selects the backspace delays.
This is a mask to use before comparing to BS0 and BS1. Speci-
fies no delay. Specifies one delay of approximately 0.05 sec-
onds. If OFILL is set, this delay transmits one fill character.
Selects the vertical-tab delays. This is a mask to use before
comparing to VT0 and VT1. Specifies no delay. Specifies one
delay of approximately 2 seconds. Selects the formfeed delays.
This is a mask to use before comparing to FF0 and FF1. Speci-
fies no delay. Specifies one delay of approximately 2 seconds.
Describes the hardware control of the terminal. In addition to
the basic control modes, this field uses the following control
characters: Enables hardware flow control using the Request to
Sent (RTS) and Clear to Send (CTS) signals. Specifies the char-
acter size. These bits specify the character size in bits for
both transmit and receive operations. This size does not include
the parity bit, if any. 5 bits. 6 bits. 7 bits. 8 bits.
Specifies number of stop bits. If set, 2 stop bits are sent;
otherwise, only 1 stop bit is sent. Higher baud rates require 2
stop bits. (At 110 baud, for example, 2 stop bits are required.)
Enables receiver. If set, the receiver is enabled. Otherwise,
characters are not received. Enables parity. If set, parity
generation and detection is enabled and a parity bit is added to
each character. Specifies odd parity. If parity is enabled,
this specifies odd parity. If clear, even parity is used. Hangs
up on last close. If set, the line is disconnected when the last
process closes the line or when the process terminates (when the
`data terminal ready' signal drops). Specifies a local line. If
set, the line is assumed to have a local, direct connection with
no modem control. If clear, modem control (dialup) is assumed.
The initial hardware control value after an open is CS8 and
CREAD. Controls various terminal functions. In addition to the
basic modes, this field uses the following mask name symbols:
Enables signals. If set, each input character is checked against
the INTR and QUIT special control characters. If a character
matches one of these control characters, the function associated
with that character is performed. If the ISIG function is clear,
checking is not done. Enables canonical input. If set, turns on
canonical processing, which enables the erase and kill edit
functions as well as the assembly of input characters into lines
delimited by NL, EOF, and EOL.
If the ICANON function is clear, read requests are satisfied di-
rectly from the input queue. In this case, a read request is not
satisfied until one of the following conditions is met: a) the
minimum number of characters specified by MIN are received; or
b) the timeout value specified by TIME has expired since the
last character was received. This allows bursts of input to be
read, while still allowing single character input. The MIN and
TIME values are stored in the VMIN and VTIME positions, respec-
tively. The time value represents tenths of seconds. Enables
canonical uppercase and lowercase presentation. If set along
with the ICANON function, an uppercase letter (or the uppercase
letter translated to lowercase by the IUCLC input mode) is ac-
cepted on input by preceding it with a \ (backslash) character.
The output is then preceded by a backslash character. Enables
echo. If set, characters are displayed on the terminal screen as
they are received. Echoes erase character as BS-SP-BS. If the
ECHO and ECHOE functions are both set and ECHOPRT is clear, the
erase character is implemented as a backspace, a space, and then
another backspace (ASCII BS-SP-BS). This clears the last charac-
ter from the screen. If ECHOE is set, but ECHO is clear, the
erase character is implemented as ASCII SP-BS. Echoes NL after
kill. If ECHOK is set and ECHOKE is clear, a newline function is
performed to clear the line after a KILL character is received.
This emphasizes that the line is deleted. Note that an escape
character preceding the ERASE or KILL character removes any spe-
cial function. Echoes NL. If ECHONL is set, the line is cleared
when a newline function is performed whether or not the ECHO
function is set. This is useful for terminals that are set to
local echo (also referred to as half-duplex). Unless an escape
character precedes an EOF, the EOF character is not displayed.
Because the ASCII EOT character is the default end-of-file char-
acter, this prevents terminals that respond to the EOT character
from hanging up. Disables queue flushing. If set, the normal
flushing of the input and output queues associated with the quit
and interrupt characters is not done.
The ICANON, XCASE, ECHO, ECHOE, ECHOK, ECHONL, and NOFLSH spe-
cial input functions are possible only if the ISIG function is
set. These functions can be disabled individually by changing
the value of the control character to an unlikely or impossible
value (for example, 0377 octal or 0xFF) Echoes control charac-
ters as ^X, where the X variable is the character given by
adding 100 octal to the code of the control character. The ASCII
DEL character is echoed as ^? and the ASCII TAB, NL, and START
characters are not echoed.
Unless an escape character precedes an EOF, the EOF character is
not displayed. Because the ASCII EOT character is the default
End-of-File character, this mask prevents terminals that respond
to the EOT character from hanging up. Echoes the first ERASE
and WERASE character in a sequence as a \ (backslash), and then
erases the characters. Subsequent ERASE and WERASE characters
echo the characters being erased (in reverse order). Echoes the
kill character by erasing from the screen each character on the
line. Flushes the output. When this bit is set by typing the
FLUSH character, data written to the terminal is discarded. A
terminal can cancel the effect of typing the FLUSH character by
clearing this bit. Reprints any input that has not yet been
read when the next character arrives as input. Enables extended
(implementation-defined) functions to be recognized from the in-
put data. If this bit is clear, implementation-defined functions
are not recognized, and the corresponding input characters are
processed as described for ICANON, ISIG, IXON, and IXOFF. Sends
a SIGTTOU signal when a process in a background process group
tries to write to its controlling terminal. The SIGTTOU signal
stops the members of the process group. If job control is not
supported, this symbol is ignored. Specifies an array that de-
fines the special control characters. The relative positions and
initial values for each function are: Indexes the INTR control
character (Ctrl-Backspace), which sends a SIGINT signal to stop
all processes controlled by this terminal. Indexes the QUIT
control character (Ctrl-v or Ctrl-|), which sends a SIGQUIT sig-
nal to stop all processes controlled by this terminal and writes
a core image file into the current working directory. Indexes
the ERASE control character (Backspace), which erases the pre-
ceding character. The ERASE character does not erase beyond the
beginning of the line (delimited by a NL, EOL, EOF, or EOL2
character). Indexes the KILL control character (Ctrl-u), which
deletes the entire line (delimited by a NL, EOL, EOF, or EOL2
character). Indexes the EOF control character (Ctrl-d), which
can be used at the terminal to generate an end-of-file. When
this character is received, all characters waiting to be read
are immediately passed to the program without waiting for a new
line, and the EOF is discarded. If the EOF is at the beginning
of a line (no characters are waiting), zero characters are
passed back, which is the standard End-of-File. Indexes the EOL
control character (Ctrl-@ or ASCII null), which is an additional
line delimiter that is not normally used. Indexes the EOL2 con-
trol character (Ctrl-@ or ASCII null), which is an additional
line delimiter that is not normally used. Indexes the START
control character (Ctrl-q), which resumes output that has been
suspended by a STOP character. START characters are ignored if
the output is not suspended. Indexes the SUSP control character
(Ctrl-z), which causes a SIGTSTP signal to be sent to all fore-
ground processes controlled by this terminal. This character is
recognized during input if the ISIG flag is enabled. If job con-
trol is not supported, this character is ignored. Indexes the
DSUSP control character (Ctrl-y), which causes a SIGTSTP signal
to be sent to all foreground processes controlled by this termi-
nal. This character is recognized when the process attempts to
read the DSUSP character. If job control is not supported, this
character is ignored. Indexes the STOP control character (Ctrl-
s), which can be used to temporarily suspend output. This char-
acter is recognized during both input and output if the IXOFF
(input control) or IXON (output control) flag is set. Indexes
the REPRINT control character (Ctrl-r), which reprints all char-
acters that are preceded by a NL character and that have not
been read. Indexes the DISCARD control character (Ctrl-o),
which causes all output to be discarded until another DISCARD
character is typed, more input is received, or the condition is
cleared by a program. Indexes the WERASE control character
(Ctrl-w), which erases the preceding word. The WERASE character
does not erase beyond the beginning of the line (delimited by a
NL, EOL, EOF, or EOL2 character). Indexes the LNEXT (literal
next) control character (Ctrl-v), which causes the special mean-
ing of the next character to be ignored, so that characters can
be input without being interpreted by the system.
The character values for INTR, QUIT, SWTCH, ERASE, KILL, EOF,
and EOL can be changed. The ERASE, KILL, and EOF characters can
also be escaped (preceded with a backslash) so that no special
processing is done. Indexes the minimum read value. This value
is used for noncanonical processing. See the previous descrip-
tion of the ICANON flag. Indexes the time value. This value is
used for noncanonical processing. See the previous description
of the ICANON flag. Specifies the input baud rate.
The default input baud rate is 9600. However, the input baud
rate can be specified to be one of the following: Hangs up. The
zero baud rate is used to hang up the connection. If B0 is
specified, the `data terminal ready' signal is not asserted.
Normally, this disconnects the line. 50 baud. 75 baud. 110
baud. 134.5 baud. 150 baud. 200 baud. 300 baud. 600 baud.
600 baud. 1200 baud. 1800 baud. 2400 baud. 4800 baud. 9600
baud. 19200 baud. 38400 baud. 57600 baud. 115200 baud. Ex-
ternal A. External B. Specifies the output baud rate.
The default output baud rate is 9600. However, the possible
output baud rate values are the same as for the input baud rate
values listed above.
The following values for the optional-actions parameter of the tcse-
tattr() function are also defined in the termios.h header file: Immedi-
ately sets the parameters associated with the terminal from the refer-
enced termios structure. Waits until all output written to the object
file has been transmitted before setting the terminal parameters from
the termios structure.
Waits until all output written to the object file has been transmitted
and all input received but not read has been discarded before setting
the terminal parameters from the termios structure.
The following values for the queue-selector parameter of the tcflush()
function are also defined in this header file: Flushes data that is re-
ceived but not read. Flushes data that is written but not transmitted.
Flushes both data that is received but not read and data that is writ-
ten but not transmitted.
The following values for the action parameter of the tcflow() system
call are also defined in the termios.h header file: Suspends the output
of data by the object file named in the tcflow() function. Restarts
data output that was suspended by the TCOOFF parameter. Transmits a
stop character to stop data transmission by the terminal device.
Transmits a start character to start or restart data transmission by
the terminal device.
FILES
The path to the termios.h header file.
RELATED INFORMATION
Files: ace(7), scc(7), tty(7).
Functions: ioctl(2), cfgetispeed(3), cfgetospeed(3), cfsetispeed(3),
cfsetospeed(3), tcsetattr(3), tcgetattr(3), tcflow(3), tcflush(3).
Commands: csh(1), sh(1), stty(1), tset(1), getty(8). delim off
termios(4)