Certain characters have special functions on input or output or both.
These functions and their typical default character values are summarized below:
INTR-
(typically, rubout or ASCII <Del>) sends an ``interrupt'' signal,
SIGINT, to all processes in the foreground process-group for which the terminal is the controlling-terminal.
Receiving the signal SIGINT normally forces a process to terminate, but a process may arrange to ignore the signal or to call a signal-catching function (see
sigaction(S)).
If ISIG is set, the INTR character is recognized and acts as a special character on input and is discarded when processed (see
``Local modes and line disciplines''
in
termio(M)).
QUIT-
(typically, control-\ or ASCII FS) sends a quit signal, SIGQUIT, to all processes in the foreground process-group for which the terminal is the controlling-terminal.
Receiving the signal SIGQUIT normally forces a process to terminate just as the signal SIGINT does except that, unless a receiving process makes other arrangements,
it not only terminates but
a core image file (called CORE) will be created
in the current working directory of the process (see
sigaction(S)).
If ISIG is set, the QUIT character is recognized and acts as a special character on input and is discarded when processed (see
``Local modes and line disciplines''
in
termio(M)).
ERASE-
(typically, the character #) erases the most recently input character in the current line (see
``Canonical mode input processing'').
It does not erase beyond the start of a line.
If ICANON is set, the ERASE character is recognized and acts as a special character on input and is discarded when processed (see
``Local modes and line disciplines''
in
termio(M)).
KILL-
(typically, the character @) deletes the entire line, as delimited by an EOF, EOL or NL character.
If ICANON is set, the KILL character is recognized and acts as a special character on input and is discarded when processed (see
``Local modes and line disciplines''
in
termio(M)).
EOF-
(typically, control-d or ASCII EOT) generates an EOF, from a terminal.
On receiving EOF, a read immediately passes any bytes of data it holds to the process without waiting for a new-line, and discards the EOF.
If EOF occurred at the beginning of a line, a read holds no bytes of data, and returns a byte count of zero, the standard end-of-file indication.
If ICANON is set, the EOF character is recognized and acts as a special character on input and is discarded when processed (see
``Local modes and line disciplines''
in
termio(M)).
NL-
(ASCII LF) is the normal line delimiter, ('\n'), which can not be changed or escaped.
If ICANON is set, the NL character is recognized and acts as a special character on input (see
``Local modes and line disciplines''
in
termio(M)).
EOL-
(typically, ASCII NUL) is an additional line delimiter, like the NL character.
EOL is not normally used.
If ICANON is set, the EOL character is recognized and acts as a special character on input (see
``Local modes and line disciplines''
in
termio(M)).
SUSP-
(typically, control-z or ASCII SUB) sends an stop signal, SIGTSTP, to all processes in the foreground process-group for which the terminal is the controlling-terminal.
If job-control is supported and ISIG is set, the SUSP character is recognized and acts as a special character on input and is discarded when processed (see
``Local modes and line disciplines''
in
termio(M)).
STOP-
(typically, control-s or ASCII DC3) temporarily suspends output.
It is useful with CRT terminals to prevent output from disappearing before it can be seen.
While output is suspended, STOP characters are ignored not read.
The STOP character can be changed through the c_cc array (see
``Special control characters''
in
termio(M)).
If IXON (output control) is set or IXOFF (input control) is set, the STOP character is recognized and acts as a special character on both input and output.
If IXON is set, the STOP character is discarded when processed (see
``Input modes''
in
termio(M)).
START-
(typically, control-q or ASCII DC1) resumes output suspended by a STOP character.
While output is not suspended, START characters are ignored and not read.
The START character can be changed through the c_cc array (see
``Special control characters''
in
termio(M)).
If IXON (output control) is set or IXOFF (input control) is set, the START character is recognized and acts as a special character on both input and output.
If IXON is set, the START character is discarded when processed (see
``Input modes''
in
termio(M)).
CR-
(ASCII CR) is a line delimiter, ('\r'), which is translated into the NL character, and it has the same effect as the NL character if ICANON and ICRNL are set and IGNCR is clear.
If ICANON is set, the NL character is recognized and acts as a special character on input (see
``Local modes and line disciplines''
in
termio(M)).
MIN-
controls terminal I/O during raw mode (ICANON off) processing (see
``Non-canonical mode input processing'').
TIME-
controls terminal I/O during raw mode (ICANON off) processing (see
``Non-canonical mode input processing'').
The NL and CR character cannot be changed.
The INTR, QUIT, ERASE, KILL, EOF, EOL, SUSP, STOP and START characters can be
changed through the c_cc array (see
``Special control characters''
in
termio(M)).
The ERASE, KILL and EOF characters may be entered literally
(their special meaning escaped) by preceding them with the
escape character ('\').
In this case, no special function is done and the escape character is not read as input.