Annotation of 43BSDReno/share/doc/ps1/06.sysman/2.4.t, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1983 Regents of the University of California.
        !             2: .\" All rights reserved.  The Berkeley software License Agreement
        !             3: .\" specifies the terms and conditions for redistribution.
        !             4: .\"
        !             5: .\"    @(#)2.4.t       6.2 (Berkeley) 5/12/86
        !             6: .\"
        !             7: .sh "Terminals and Devices
        !             8: .NH 3
        !             9: Terminals
        !            10: .PP
        !            11: Terminals support \fIread\fP and \fIwrite\fP I/O operations,
        !            12: as well as a collection of terminal specific \fIioctl\fP operations,
        !            13: to control input character interpretation and editing,
        !            14: and output format and delays.
        !            15: .NH 4
        !            16: Terminal input
        !            17: .PP
        !            18: Terminals are handled according to the underlying communication
        !            19: characteristics such as baud rate and required delays,
        !            20: and a set of software parameters.
        !            21: .NH 5
        !            22: Input modes
        !            23: .PP
        !            24: A terminal is in one of three possible modes: \fIraw\fP, \fIcbreak\fP,
        !            25: or \fIcooked\fP.
        !            26: In raw mode all input is passed through to the
        !            27: reading process immediately and without interpretation.
        !            28: In cbreak mode, the handler interprets input only by looking
        !            29: for characters that cause interrupts or output flow control;
        !            30: all other characters are made available as in raw mode.
        !            31: In cooked mode, input
        !            32: is processed to provide standard line-oriented local editing functions,
        !            33: and input is presented on a line-by-line basis.
        !            34: .NH 5
        !            35: Interrupt characters
        !            36: .PP
        !            37: Interrupt characters are interpreted by the terminal handler only in
        !            38: cbreak and cooked modes, and
        !            39: cause a software interrupt to be sent to all processes in the process
        !            40: group associated with the terminal.  Interrupt characters exist
        !            41: to send SIGINT
        !            42: and SIGQUIT signals,
        !            43: and to stop a process group
        !            44: with the SIGTSTP signal either immediately, or when
        !            45: all input up to the stop character has been read.
        !            46: .NH 5
        !            47: Line editing
        !            48: .PP
        !            49: When the terminal is in cooked mode, editing of an input line
        !            50: is performed.  Editing facilities allow deletion of the previous
        !            51: character or word, or deletion of the current input line. 
        !            52: In addition, a special character may be used to reprint the current
        !            53: input line after some number of editing operations have been applied.
        !            54: .PP
        !            55: Certain other characters are interpreted specially when a process is
        !            56: in cooked mode.  The \fIend of line\fP character determines
        !            57: the end of an input record.  The \fIend of file\fP character simulates
        !            58: an end of file occurrence on terminal input.  Flow control is provided
        !            59: by \fIstop output\fP and \fIstart output\fP control characters.  Output
        !            60: may be flushed with the \fIflush output\fP character; and a \fIliteral
        !            61: character\fP may be used to force literal input of the immediately
        !            62: following character in the input line.
        !            63: .PP
        !            64: Input characters may be echoed to the terminal as they are received.
        !            65: Non-graphic ASCII input characters may be echoed as a two-character
        !            66: printable representation, ``^character.''
        !            67: .NH 4
        !            68: Terminal output
        !            69: .PP
        !            70: On output, the terminal handler provides some simple formatting services.
        !            71: These include converting the carriage return character to the
        !            72: two character return-linefeed sequence,
        !            73: inserting delays after certain standard control characters,
        !            74: expanding tabs, and providing translations
        !            75: for upper-case only terminals.
        !            76: .NH 4
        !            77: Terminal control operations
        !            78: .PP
        !            79: When a terminal is first opened it is initialized to a standard
        !            80: state and configured with a set of standard control, editing,
        !            81: and interrupt characters.  A process
        !            82: may alter this configuration with certain
        !            83: control operations, specifying parameters in a standard structure:\(dg
        !            84: .FS
        !            85: \(dg The control interface described here is an internal interface only
        !            86: in 4.3BSD.  Future releases will probably use a modified interface
        !            87: based on currently-proposed standards.
        !            88: .FE
        !            89: .DS
        !            90: ._f
        !            91: struct ttymode {
        !            92:        short   tt_ispeed;      /* input speed */
        !            93:        int     tt_iflags;      /* input flags */
        !            94:        short   tt_ospeed;      /* output speed */
        !            95:        int     tt_oflags;      /* output flags */
        !            96: };
        !            97: .DE
        !            98: and ``special characters'' are specified with the 
        !            99: \fIttychars\fP structure,
        !           100: .DS
        !           101: ._f
        !           102: struct ttychars {
        !           103:        char    tc_erasec;      /* erase char */
        !           104:        char    tc_killc;       /* erase line */
        !           105:        char    tc_intrc;       /* interrupt */
        !           106:        char    tc_quitc;       /* quit */
        !           107:        char    tc_startc;      /* start output */
        !           108:        char    tc_stopc;       /* stop output */
        !           109:        char    tc_eofc;        /* end-of-file */
        !           110:        char    tc_brkc;        /* input delimiter (like nl) */
        !           111:        char    tc_suspc;       /* stop process signal */
        !           112:        char    tc_dsuspc;      /* delayed stop process signal */
        !           113:        char    tc_rprntc;      /* reprint line */
        !           114:        char    tc_flushc;      /* flush output (toggles) */
        !           115:        char    tc_werasc;      /* word erase */
        !           116:        char    tc_lnextc;      /* literal next character */
        !           117: };
        !           118: .DE
        !           119: .NH 4
        !           120: Terminal hardware support
        !           121: .PP
        !           122: The terminal handler allows a user to access basic
        !           123: hardware related functions; e.g. line speed,
        !           124: modem control, parity, and stop bits.  A special signal,
        !           125: SIGHUP, is automatically
        !           126: sent to processes in a terminal's process
        !           127: group when a carrier transition is detected.  This is
        !           128: normally associated with a user hanging up on a modem
        !           129: controlled terminal line.
        !           130: .NH 3
        !           131: Structured devices
        !           132: .PP
        !           133: Structures devices are typified by disks and magnetic
        !           134: tapes, but may represent any random-access device.
        !           135: The system performs read-modify-write type buffering actions on block
        !           136: devices to allow them to be read and written in a totally random
        !           137: access fashion like ordinary files.
        !           138: File systems are normally created in block devices.
        !           139: .NH 3
        !           140: Unstructured devices
        !           141: .PP
        !           142: Unstructured devices are those devices which
        !           143: do not support block structure.  Familiar unstructured devices
        !           144: are raw communications lines (with
        !           145: no terminal handler), raster plotters, magnetic tape and disks unfettered
        !           146: by buffering and permitting large block input/output and positioning
        !           147: and formatting commands.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.