+Two general kinds of input processing are available, determined by
+whether the terminal device file is in canonical mode or noncanonical
+mode. Additionally, input characters are processed according to the
+\fIc_iflag\fP and \fIc_lflag\fP fields.
+Such processing can include echoing, which
+in general means transmitting input characters immediately back to the
+terminal when they are received from the terminal.
+Non-graphic ASCII input characters may be echoed as a two-character
+printable representation, ``^character.''
+.PP
+In canonical mode input processing,
+terminal input is processed in units of lines.
+A line is delimited by a newline character (NL),
+an end-of-file (EOF) character, or an end-of-line (EOL) character.
+Input is presented on a line-by-line basis.
+Using this mode means that a read request will not return
+until an entire line has been typed,
+or a signal has been received.
+Also, no matter how many bytes are requested
+in the read call, at most one line is returned.
+It is not, however, necessary to read a whole line at once;
+any number of bytes, even one, may
+be requested in a read without losing information.
+.PP
+When the terminal is in canonical mode, editing of an input line
+is performed. Editing facilities allow deletion of the previous
+character or word, or deletion of the current input line.
+In addition,
+a special character may be used to reprint the current input line.
+Certain other characters are also interpreted specially.
+Flow control is provided by the \fIstop output\fP
+and \fIstart output\fP control characters.
+Output may be flushed with the \fIflush output\fP character;
+and the \fIliteral character\fP may be used to force the following
+character into the input line, regardless of any special meaning
+it may have.
+.PP
+In noncanonical mode input processing, input bytes are not assembled into
+lines, and erase and kill processing does not occur.
+All input is passed through to the