1afe61c15SRodney W. Grimes.\" Copyright (c) 1991, 1992, 1993 2afe61c15SRodney W. Grimes.\" The Regents of the University of California. All rights reserved. 3afe61c15SRodney W. Grimes.\" 4afe61c15SRodney W. Grimes.\" Redistribution and use in source and binary forms, with or without 5afe61c15SRodney W. Grimes.\" modification, are permitted provided that the following conditions 6afe61c15SRodney W. Grimes.\" are met: 7afe61c15SRodney W. Grimes.\" 1. Redistributions of source code must retain the above copyright 8afe61c15SRodney W. Grimes.\" notice, this list of conditions and the following disclaimer. 9afe61c15SRodney W. Grimes.\" 2. Redistributions in binary form must reproduce the above copyright 10afe61c15SRodney W. Grimes.\" notice, this list of conditions and the following disclaimer in the 11afe61c15SRodney W. Grimes.\" documentation and/or other materials provided with the distribution. 12afe61c15SRodney W. Grimes.\" 3. All advertising materials mentioning features or use of this software 13afe61c15SRodney W. Grimes.\" must display the following acknowledgement: 14afe61c15SRodney W. Grimes.\" This product includes software developed by the University of 15afe61c15SRodney W. Grimes.\" California, Berkeley and its contributors. 16afe61c15SRodney W. Grimes.\" 4. Neither the name of the University nor the names of its contributors 17afe61c15SRodney W. Grimes.\" may be used to endorse or promote products derived from this software 18afe61c15SRodney W. Grimes.\" without specific prior written permission. 19afe61c15SRodney W. Grimes.\" 20afe61c15SRodney W. Grimes.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21afe61c15SRodney W. Grimes.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22afe61c15SRodney W. Grimes.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23afe61c15SRodney W. Grimes.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24afe61c15SRodney W. Grimes.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25afe61c15SRodney W. Grimes.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26afe61c15SRodney W. Grimes.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27afe61c15SRodney W. Grimes.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28afe61c15SRodney W. Grimes.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29afe61c15SRodney W. Grimes.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30afe61c15SRodney W. Grimes.\" SUCH DAMAGE. 31afe61c15SRodney W. Grimes.\" 32afe61c15SRodney W. Grimes.\" @(#)termios.4 8.4 (Berkeley) 4/19/94 337f3dea24SPeter Wemm.\" $FreeBSD$ 34afe61c15SRodney W. Grimes.\" 35afe61c15SRodney W. Grimes.Dd April 19, 1994 36afe61c15SRodney W. Grimes.Dt TERMIOS 4 373d45e180SRuslan Ermilov.Os 38afe61c15SRodney W. Grimes.Sh NAME 39afe61c15SRodney W. Grimes.Nm termios 40afe61c15SRodney W. Grimes.Nd general terminal line discipline 41afe61c15SRodney W. Grimes.Sh SYNOPSIS 42afe61c15SRodney W. Grimes.Fd #include <termios.h> 43afe61c15SRodney W. Grimes.Sh DESCRIPTION 44afe61c15SRodney W. GrimesThis describes a general terminal line discipline that is 45afe61c15SRodney W. Grimessupported on tty asynchronous communication ports. 46afe61c15SRodney W. Grimes.Ss Opening a Terminal Device File 47afe61c15SRodney W. GrimesWhen a terminal file is opened, it normally causes the process to wait 48afe61c15SRodney W. Grimesuntil a connection is established. For most hardware, the presence 49afe61c15SRodney W. Grimesof a connection is indicated by the assertion of the hardware 50d0353b83SRuslan Ermilov.Dv CARRIER 51d0353b83SRuslan Ermilovline. 52afe61c15SRodney W. GrimesIf the termios structure associated with the terminal file has the 53afe61c15SRodney W. Grimes.Dv CLOCAL 54afe61c15SRodney W. Grimesflag set in the cflag, or if the 55afe61c15SRodney W. Grimes.Dv O_NONBLOCK 56afe61c15SRodney W. Grimesflag is set 57afe61c15SRodney W. Grimesin the 58afe61c15SRodney W. Grimes.Xr open 2 59afe61c15SRodney W. Grimescall, then the open will succeed even without 60afe61c15SRodney W. Grimesa connection being present. 61afe61c15SRodney W. GrimesIn practice, applications 62afe61c15SRodney W. Grimesseldom open these files; they are opened by special programs, such 63afe61c15SRodney W. Grimesas 64906c1e27SMike Pritchard.Xr getty 8 65afe61c15SRodney W. Grimesor 66906c1e27SMike Pritchard.Xr rlogind 8 , 67afe61c15SRodney W. Grimesand become 68afe61c15SRodney W. Grimesan application's standard input, output, and error files. 69afe61c15SRodney W. Grimes.Ss Job Control in a Nutshell 70afe61c15SRodney W. GrimesEvery process is associated with a particular process group and session. 71afe61c15SRodney W. GrimesThe grouping is hierarchical: every member of a particular process group is a 72afe61c15SRodney W. Grimesmember of the same session. This structuring is used in managing groups 73afe61c15SRodney W. Grimesof related processes for purposes of 74afe61c15SRodney W. Grimes.\" .Gw "job control" ; 75afe61c15SRodney W. Grimes.Em "job control" ; 76afe61c15SRodney W. Grimesthat is, the 77afe61c15SRodney W. Grimesability from the keyboard (or from program control) to simultaneously 78afe61c15SRodney W. Grimesstop or restart 79afe61c15SRodney W. Grimesa complex command (a command composed of one or more related 80afe61c15SRodney W. Grimesprocesses). The grouping into process groups allows delivering 81afe61c15SRodney W. Grimesof signals that stop or start the group as a whole, along with 82afe61c15SRodney W. Grimesarbitrating which process group has access to the single controlling 83afe61c15SRodney W. Grimesterminal. The grouping at a higher layer into sessions is to restrict 84afe61c15SRodney W. Grimesthe job control related signals and system calls to within processes 85afe61c15SRodney W. Grimesresulting from a particular instance of a "login". Typically, a session 86afe61c15SRodney W. Grimesis created when a user logs in, and the login terminal is setup 87afe61c15SRodney W. Grimesto be the controlling terminal; all processes spawned from that 88afe61c15SRodney W. Grimeslogin shell are in the same session, and inherit the controlling 89afe61c15SRodney W. Grimesterminal. 90edf0e5b3SMike Pritchard.Pp 91afe61c15SRodney W. GrimesA job control shell 92afe61c15SRodney W. Grimesoperating interactively (that is, reading commands from a terminal) 93afe61c15SRodney W. Grimesnormally groups related processes together by placing them into the 94afe61c15SRodney W. Grimessame process group. A set of processes in the same process group 95afe61c15SRodney W. Grimesis collectively referred to as a "job". When the foreground process 96afe61c15SRodney W. Grimesgroup of the terminal is the same as the process group of a particular 97afe61c15SRodney W. Grimesjob, that job is said to be in the "foreground". When the process 98a67e435cSChris Costellogroup of the terminal is different from the process group of 99afe61c15SRodney W. Grimesa job (but is still the controlling terminal), that job is said 100afe61c15SRodney W. Grimesto be in the "background". Normally the 101afe61c15SRodney W. Grimesshell reads a command and starts the job that implements that 102afe61c15SRodney W. Grimescommand. If the command is to be started in the foreground (typical), it 103afe61c15SRodney W. Grimessets the process group of the terminal to the process group 104afe61c15SRodney W. Grimesof the started job, waits for the job to complete, and then 105afe61c15SRodney W. Grimessets the process group of the terminal back to its own process 106afe61c15SRodney W. Grimesgroup (it puts itself into the foreground). If the job is to 107afe61c15SRodney W. Grimesbe started in the background (as denoted by the shell operator "&"), 108afe61c15SRodney W. Grimesit never changes the process group of the terminal and doesn't 109afe61c15SRodney W. Grimeswait for the job to complete (that is, it immediately attempts to read the next 110afe61c15SRodney W. Grimescommand). If the job is started in the foreground, the user may 111afe61c15SRodney W. Grimestype a key (usually 112afe61c15SRodney W. Grimes.Ql \&^Z ) 113afe61c15SRodney W. Grimeswhich generates the terminal stop signal 114afe61c15SRodney W. Grimes.Pq Dv SIGTSTP 115db3357b8SSheldon Hearnand has the effect of stopping the entire job. 116afe61c15SRodney W. GrimesThe shell will notice that the job stopped, and will resume running after 117afe61c15SRodney W. Grimesplacing itself in the foreground. 118afe61c15SRodney W. GrimesThe shell also has commands for placing stopped jobs in the background, 119afe61c15SRodney W. Grimesand for placing stopped or background jobs into the foreground. 120afe61c15SRodney W. Grimes.Ss Orphaned Process Groups 121afe61c15SRodney W. GrimesAn orphaned process group is a process group that has no process 122afe61c15SRodney W. Grimeswhose parent is in a different process group, yet is in the same 123afe61c15SRodney W. Grimessession. Conceptually it means a process group that doesn't have 124afe61c15SRodney W. Grimesa parent that could do anything if it were to be stopped. For example, 125afe61c15SRodney W. Grimesthe initial login shell is typically in an orphaned process group. 126afe61c15SRodney W. GrimesOrphaned process groups are immune to keyboard generated stop 127afe61c15SRodney W. Grimessignals and job control signals resulting from reads or writes to the 128afe61c15SRodney W. Grimescontrolling terminal. 129afe61c15SRodney W. Grimes.Ss The Controlling Terminal 130afe61c15SRodney W. GrimesA terminal may belong to a process as its controlling terminal. Each 131afe61c15SRodney W. Grimesprocess of a session that has a controlling terminal has the same 132afe61c15SRodney W. Grimescontrolling terminal. A terminal may be the controlling terminal for at 133afe61c15SRodney W. Grimesmost one session. The controlling terminal for a session is allocated by 134afe61c15SRodney W. Grimesthe session leader by issuing the 135afe61c15SRodney W. Grimes.Dv TIOCSCTTY 136afe61c15SRodney W. Grimesioctl. A controlling terminal 137afe61c15SRodney W. Grimesis never acquired by merely opening a terminal device file. 138afe61c15SRodney W. GrimesWhen a controlling terminal becomes 139afe61c15SRodney W. Grimesassociated with a session, its foreground process group is set to 140afe61c15SRodney W. Grimesthe process group of the session leader. 141afe61c15SRodney W. Grimes.Pp 142afe61c15SRodney W. GrimesThe controlling terminal is inherited by a child process during a 143afe61c15SRodney W. Grimes.Xr fork 2 144afe61c15SRodney W. Grimesfunction call. A process relinquishes its controlling terminal when it 145afe61c15SRodney W. Grimescreates a new session with the 146929f3023SJoseph Koshy.Xr setsid 2 147afe61c15SRodney W. Grimesfunction; other processes 148afe61c15SRodney W. Grimesremaining in the old session that had this terminal as their controlling 149afe61c15SRodney W. Grimesterminal continue to have it. 150afe61c15SRodney W. GrimesA process does not relinquish its 151afe61c15SRodney W. Grimescontrolling terminal simply by closing all of its file descriptors 152afe61c15SRodney W. Grimesassociated with the controlling terminal if other processes continue to 153afe61c15SRodney W. Grimeshave it open. 154afe61c15SRodney W. Grimes.Pp 155afe61c15SRodney W. GrimesWhen a controlling process terminates, the controlling terminal is 156afe61c15SRodney W. Grimesdisassociated from the current session, allowing it to be acquired by a 157afe61c15SRodney W. Grimesnew session leader. Subsequent access to the terminal by other processes 158afe61c15SRodney W. Grimesin the earlier session will be denied, with attempts to access the 159afe61c15SRodney W. Grimesterminal treated as if modem disconnect had been sensed. 160afe61c15SRodney W. Grimes.Ss Terminal Access Control 161afe61c15SRodney W. GrimesIf a process is in the foreground process group of its controlling 162afe61c15SRodney W. Grimesterminal, read operations are allowed. 163afe61c15SRodney W. GrimesAny attempts by a process 164afe61c15SRodney W. Grimesin a background process group to read from its controlling terminal 165afe61c15SRodney W. Grimescauses a 166afe61c15SRodney W. Grimes.Dv SIGTTIN 167afe61c15SRodney W. Grimessignal to be sent to 168afe61c15SRodney W. Grimesthe process's group 169afe61c15SRodney W. Grimesunless one of the 170afe61c15SRodney W. Grimesfollowing special cases apply: If the reading process is ignoring or 171afe61c15SRodney W. Grimesblocking the 172f167d7fbSSheldon Hearn.Dv SIGTTIN 173f167d7fbSSheldon Hearnsignal, or if the process group of the reading 174afe61c15SRodney W. Grimesprocess is orphaned, the 175afe61c15SRodney W. Grimes.Xr read 2 176afe61c15SRodney W. Grimesreturns -1 with 177afe61c15SRodney W. Grimes.Va errno set to 178b92a189eSRuslan Ermilov.Er EIO 179afe61c15SRodney W. Grimesand no 180afe61c15SRodney W. Grimessignal is sent. The default action of the 181afe61c15SRodney W. Grimes.Dv SIGTTIN 182afe61c15SRodney W. Grimessignal is to stop the 183afe61c15SRodney W. Grimesprocess to which it is sent. 184afe61c15SRodney W. Grimes.Pp 185afe61c15SRodney W. GrimesIf a process is in the foreground process group of its controlling 186afe61c15SRodney W. Grimesterminal, write operations are allowed. 187afe61c15SRodney W. GrimesAttempts by a process in a background process group to write to its 188afe61c15SRodney W. Grimescontrolling terminal will cause the process group to be sent a 189afe61c15SRodney W. Grimes.Dv SIGTTOU 190afe61c15SRodney W. Grimessignal unless one of the following special cases apply: If 191afe61c15SRodney W. Grimes.Dv TOSTOP 192afe61c15SRodney W. Grimesis not 193afe61c15SRodney W. Grimesset, or if 194afe61c15SRodney W. Grimes.Dv TOSTOP 195afe61c15SRodney W. Grimesis set and the process is ignoring or blocking the 196afe61c15SRodney W. Grimes.Dv SIGTTOU 197afe61c15SRodney W. Grimessignal, the process is allowed to write to the terminal and the 198afe61c15SRodney W. Grimes.Dv SIGTTOU 199afe61c15SRodney W. Grimessignal is not sent. If 200afe61c15SRodney W. Grimes.Dv TOSTOP 201afe61c15SRodney W. Grimesis set, and the process group of 202afe61c15SRodney W. Grimesthe writing process is orphaned, and the writing process is not ignoring 203afe61c15SRodney W. Grimesor blocking 204afe61c15SRodney W. Grimes.Dv SIGTTOU , 205afe61c15SRodney W. Grimesthe 206edf0e5b3SMike Pritchard.Xr write 2 207afe61c15SRodney W. Grimesreturns -1 with 208afe61c15SRodney W. Grimeserrno set to 209b92a189eSRuslan Ermilov.Er EIO 210afe61c15SRodney W. Grimesand no signal is sent. 211afe61c15SRodney W. Grimes.Pp 212afe61c15SRodney W. GrimesCertain calls that set terminal parameters are treated in the same 213afe61c15SRodney W. Grimesfashion as write, except that 214afe61c15SRodney W. Grimes.Dv TOSTOP 215afe61c15SRodney W. Grimesis ignored; that is, the effect is 216afe61c15SRodney W. Grimesidentical to that of terminal writes when 217afe61c15SRodney W. Grimes.Dv TOSTOP 218afe61c15SRodney W. Grimesis set. 219afe61c15SRodney W. Grimes.Ss Input Processing and Reading Data 220afe61c15SRodney W. GrimesA terminal device associated with a terminal device file may operate in 221afe61c15SRodney W. Grimesfull-duplex mode, so that data may arrive even while output is occurring. 222afe61c15SRodney W. GrimesEach terminal device file has associated with it an input queue, into 223afe61c15SRodney W. Grimeswhich incoming data is stored by the system before being read by a 224afe61c15SRodney W. Grimesprocess. The system imposes a limit, 225afe61c15SRodney W. Grimes.Pf \&{ Dv MAX_INPUT Ns \&} , 226afe61c15SRodney W. Grimeson the number of 227afe61c15SRodney W. Grimesbytes that may be stored in the input queue. The behavior of the system 228afe61c15SRodney W. Grimeswhen this limit is exceeded depends on the setting of the 229afe61c15SRodney W. Grimes.Dv IMAXBEL 230afe61c15SRodney W. Grimesflag in the termios 231afe61c15SRodney W. Grimes.Fa c_iflag . 232afe61c15SRodney W. GrimesIf this flag is set, the terminal 233afe61c15SRodney W. Grimesis sent an 234afe61c15SRodney W. Grimes.Tn ASCII 235afe61c15SRodney W. Grimes.Dv BEL 236afe61c15SRodney W. Grimescharacter each time a character is received 237afe61c15SRodney W. Grimeswhile the input queue is full. Otherwise, the input queue is flushed 238afe61c15SRodney W. Grimesupon receiving the character. 239afe61c15SRodney W. Grimes.Pp 240afe61c15SRodney W. GrimesTwo general kinds of input processing are available, determined by 241afe61c15SRodney W. Grimeswhether the terminal device file is in canonical mode or noncanonical 2426d249eeeSSheldon Hearnmode. 2436d249eeeSSheldon HearnAdditionally, 244afe61c15SRodney W. Grimesinput characters are processed according to the 245afe61c15SRodney W. Grimes.Fa c_iflag 246afe61c15SRodney W. Grimesand 247afe61c15SRodney W. Grimes.Fa c_lflag 248afe61c15SRodney W. Grimesfields. Such processing can include echoing, which 249afe61c15SRodney W. Grimesin general means transmitting input characters immediately back to the 250afe61c15SRodney W. Grimesterminal when they are received from the terminal. This is useful for 251afe61c15SRodney W. Grimesterminals that can operate in full-duplex mode. 252afe61c15SRodney W. Grimes.Pp 253afe61c15SRodney W. GrimesThe manner in which data is provided to a process reading from a terminal 254afe61c15SRodney W. Grimesdevice file is dependent on whether the terminal device file is in 255afe61c15SRodney W. Grimescanonical or noncanonical mode. 256afe61c15SRodney W. Grimes.Pp 257afe61c15SRodney W. GrimesAnother dependency is whether the 258afe61c15SRodney W. Grimes.Dv O_NONBLOCK 259afe61c15SRodney W. Grimesflag is set by 260edf0e5b3SMike Pritchard.Xr open 2 261afe61c15SRodney W. Grimesor 262edf0e5b3SMike Pritchard.Xr fcntl 2 . 263afe61c15SRodney W. GrimesIf the 264afe61c15SRodney W. Grimes.Dv O_NONBLOCK 265afe61c15SRodney W. Grimesflag is clear, then the read request is 266afe61c15SRodney W. Grimesblocked until data is available or a signal has been received. If the 267afe61c15SRodney W. Grimes.Dv O_NONBLOCK 268afe61c15SRodney W. Grimesflag is set, then the read request is completed, without 269afe61c15SRodney W. Grimesblocking, in one of three ways: 270afe61c15SRodney W. Grimes.Bl -enum -offset indent 271afe61c15SRodney W. Grimes.It 272afe61c15SRodney W. GrimesIf there is enough data available to satisfy the entire request, 273afe61c15SRodney W. Grimesand the read completes successfully the number of 274afe61c15SRodney W. Grimesbytes read is returned. 275afe61c15SRodney W. Grimes.It 276afe61c15SRodney W. GrimesIf there is not enough data available to satisfy the entire 277afe61c15SRodney W. Grimesrequest, and the read completes successfully, having read as 278afe61c15SRodney W. Grimesmuch data as possible, the number of bytes read is returned. 279afe61c15SRodney W. Grimes.It 280afe61c15SRodney W. GrimesIf there is no data available, the read returns -1, with 281afe61c15SRodney W. Grimeserrno set to 282afe61c15SRodney W. Grimes.Er EAGAIN . 283afe61c15SRodney W. Grimes.El 284afe61c15SRodney W. Grimes.Pp 285afe61c15SRodney W. GrimesWhen data is available depends on whether the input processing mode is 286afe61c15SRodney W. Grimescanonical or noncanonical. 287afe61c15SRodney W. Grimes.Ss Canonical Mode Input Processing 288afe61c15SRodney W. GrimesIn canonical mode input processing, terminal input is processed in units 289afe61c15SRodney W. Grimesof lines. A line is delimited by a newline 290afe61c15SRodney W. Grimes.Ql \&\en 291afe61c15SRodney W. Grimescharacter, an end-of-file 292afe61c15SRodney W. Grimes.Pq Dv EOF 293afe61c15SRodney W. Grimescharacter, or an end-of-line 294afe61c15SRodney W. Grimes.Pq Dv EOL 295afe61c15SRodney W. Grimescharacter. See the 296afe61c15SRodney W. Grimes.Sx "Special Characters" 297afe61c15SRodney W. Grimessection for 298afe61c15SRodney W. Grimesmore information on 299afe61c15SRodney W. Grimes.Dv EOF 300afe61c15SRodney W. Grimesand 301afe61c15SRodney W. Grimes.Dv EOL . 302afe61c15SRodney W. GrimesThis means that a read request will 303afe61c15SRodney W. Grimesnot return until an entire line has been typed, or a signal has been 304afe61c15SRodney W. Grimesreceived. Also, no matter how many bytes are requested in the read call, 305afe61c15SRodney W. Grimesat most one line is returned. It is not, however, necessary to 306afe61c15SRodney W. Grimesread a whole line at once; any number of bytes, even one, may be 307afe61c15SRodney W. Grimesrequested in a read without losing information. 308afe61c15SRodney W. Grimes.Pp 309afe61c15SRodney W. Grimes.Pf \&{ Dv MAX_CANON Ns \&} 310afe61c15SRodney W. Grimesis a limit on the 311afe61c15SRodney W. Grimesnumber of bytes in a line. 312afe61c15SRodney W. GrimesThe behavior of the system when this limit is 313afe61c15SRodney W. Grimesexceeded is the same as when the input queue limit 314afe61c15SRodney W. Grimes.Pf \&{ Dv MAX_INPUT Ns \&} , 315afe61c15SRodney W. Grimesis exceeded. 316afe61c15SRodney W. Grimes.Pp 317afe61c15SRodney W. GrimesErase and kill processing occur when either of two special characters, 318afe61c15SRodney W. Grimesthe 319afe61c15SRodney W. Grimes.Dv ERASE 320afe61c15SRodney W. Grimesand 321afe61c15SRodney W. Grimes.Dv KILL 322afe61c15SRodney W. Grimescharacters (see the 323afe61c15SRodney W. Grimes.Sx "Special Characters section" ) , 324afe61c15SRodney W. Grimesis received. 325afe61c15SRodney W. GrimesThis processing affects data in the input queue that has not yet been 326afe61c15SRodney W. Grimesdelimited by a newline 327afe61c15SRodney W. Grimes.Dv NL , 328afe61c15SRodney W. Grimes.Dv EOF , 329afe61c15SRodney W. Grimesor 330afe61c15SRodney W. Grimes.Dv EOL 331afe61c15SRodney W. Grimescharacter. This un-delimited 332afe61c15SRodney W. Grimesdata makes up the current line. The 333afe61c15SRodney W. Grimes.Dv ERASE 334afe61c15SRodney W. Grimescharacter deletes the last 335afe61c15SRodney W. Grimescharacter in the current line, if there is any. The 336afe61c15SRodney W. Grimes.Dv KILL 337afe61c15SRodney W. Grimescharacter 338afe61c15SRodney W. Grimesdeletes all data in the current line, if there is any. The 339afe61c15SRodney W. Grimes.Dv ERASE 340afe61c15SRodney W. Grimesand 341afe61c15SRodney W. Grimes.Dv KILL 342afe61c15SRodney W. Grimescharacters have no effect if there is no data in the current line. 343afe61c15SRodney W. GrimesThe 344afe61c15SRodney W. Grimes.Dv ERASE 345afe61c15SRodney W. Grimesand 346afe61c15SRodney W. Grimes.Dv KILL 347afe61c15SRodney W. Grimescharacters themselves are not placed in the input 348afe61c15SRodney W. Grimesqueue. 349afe61c15SRodney W. Grimes.Ss Noncanonical Mode Input Processing 350afe61c15SRodney W. GrimesIn noncanonical mode input processing, input bytes are not assembled into 351afe61c15SRodney W. Grimeslines, and erase and kill processing does not occur. The values of the 352ed7922d3SMike Pritchard.Dv VMIN 353afe61c15SRodney W. Grimesand 354ed7922d3SMike Pritchard.Dv VTIME 355afe61c15SRodney W. Grimesmembers of the 356afe61c15SRodney W. Grimes.Fa c_cc 357afe61c15SRodney W. Grimesarray are used to determine how to 358afe61c15SRodney W. Grimesprocess the bytes received. 359afe61c15SRodney W. Grimes.Pp 3605f1376d7SMike Pritchard.Dv MIN 361afe61c15SRodney W. Grimesrepresents the minimum number of bytes that should be received when 362afe61c15SRodney W. Grimesthe 363edf0e5b3SMike Pritchard.Xr read 2 364afe61c15SRodney W. Grimesfunction successfully returns. 3655f1376d7SMike Pritchard.Dv TIME 366afe61c15SRodney W. Grimesis a timer of 0.1 second 367afe61c15SRodney W. Grimesgranularity that is used to time out bursty and short term data 368afe61c15SRodney W. Grimestransmissions. If 3695f1376d7SMike Pritchard.Dv MIN 370afe61c15SRodney W. Grimesis greater than 371afe61c15SRodney W. Grimes.Dv \&{ Dv MAX_INPUT Ns \&} , 372afe61c15SRodney W. Grimesthe response to the 373afe61c15SRodney W. Grimesrequest is undefined. The four possible values for 3745f1376d7SMike Pritchard.Dv MIN 375afe61c15SRodney W. Grimesand 3765f1376d7SMike Pritchard.Dv TIME 377afe61c15SRodney W. Grimesand 378afe61c15SRodney W. Grimestheir interactions are described below. 3795f1376d7SMike Pritchard.Ss "Case A: MIN > 0, TIME > 0" 380afe61c15SRodney W. GrimesIn this case 3815f1376d7SMike Pritchard.Dv TIME 382afe61c15SRodney W. Grimesserves as an inter-byte timer and is activated after 383afe61c15SRodney W. Grimesthe first byte is received. Since it is an inter-byte timer, it is reset 384afe61c15SRodney W. Grimesafter a byte is received. The interaction between 3855f1376d7SMike Pritchard.Dv MIN 386afe61c15SRodney W. Grimesand 3875f1376d7SMike Pritchard.Dv TIME 388afe61c15SRodney W. Grimesis as 389afe61c15SRodney W. Grimesfollows: as soon as one byte is received, the inter-byte timer is 390afe61c15SRodney W. Grimesstarted. If 3915f1376d7SMike Pritchard.Dv MIN 392afe61c15SRodney W. Grimesbytes are received before the inter-byte timer expires 393afe61c15SRodney W. Grimes(remember that the timer is reset upon receipt of each byte), the read is 394afe61c15SRodney W. Grimessatisfied. If the timer expires before 3955f1376d7SMike Pritchard.Dv MIN 396afe61c15SRodney W. Grimesbytes are received, the 397afe61c15SRodney W. Grimescharacters received to that point are returned to the user. Note that if 3985f1376d7SMike Pritchard.Dv TIME 399afe61c15SRodney W. Grimesexpires at least one byte is returned because the timer would 400afe61c15SRodney W. Grimesnot have been enabled unless a byte was received. In this case 4015f1376d7SMike Pritchard.Pf \&( Dv MIN 402afe61c15SRodney W. Grimes> 0, 4035f1376d7SMike Pritchard.Dv TIME 404afe61c15SRodney W. Grimes> 0) the read blocks until the 4055f1376d7SMike Pritchard.Dv MIN 406afe61c15SRodney W. Grimesand 4075f1376d7SMike Pritchard.Dv TIME 408afe61c15SRodney W. Grimesmechanisms are 409afe61c15SRodney W. Grimesactivated by the receipt of the first byte, or a signal is received. If 410edf0e5b3SMike Pritcharddata is in the buffer at the time of the 411edf0e5b3SMike Pritchard.Fn read , 412edf0e5b3SMike Pritchardthe result is as 413edf0e5b3SMike Pritchardif data had been received immediately after the 414edf0e5b3SMike Pritchard.Fn read . 4155f1376d7SMike Pritchard.Ss "Case B: MIN > 0, TIME = 0" 416afe61c15SRodney W. GrimesIn this case, since the value of 4175f1376d7SMike Pritchard.Dv TIME 418afe61c15SRodney W. Grimesis zero, the timer plays no role 419afe61c15SRodney W. Grimesand only 4205f1376d7SMike Pritchard.Dv MIN 421afe61c15SRodney W. Grimesis significant. A pending read is not satisfied until 4225f1376d7SMike Pritchard.Dv MIN 423afe61c15SRodney W. Grimesbytes are received (i.e., the pending read blocks until 4245f1376d7SMike Pritchard.Dv MIN 425afe61c15SRodney W. Grimesbytes 426afe61c15SRodney W. Grimesare received), or a signal is received. A program that uses this case to 427afe61c15SRodney W. Grimesread record-based terminal 428afe61c15SRodney W. Grimes.Dv I/O 429afe61c15SRodney W. Grimesmay block indefinitely in the read 430afe61c15SRodney W. Grimesoperation. 4315f1376d7SMike Pritchard.Ss "Case C: MIN = 0, TIME > 0" 432afe61c15SRodney W. GrimesIn this case, since 4335f1376d7SMike Pritchard.Dv MIN 434afe61c15SRodney W. Grimes= 0, 4355f1376d7SMike Pritchard.Dv TIME 436afe61c15SRodney W. Grimesno longer represents an inter-byte 437afe61c15SRodney W. Grimestimer. It now serves as a read timer that is activated as soon as the 438afe61c15SRodney W. Grimesread function is processed. A read is satisfied as soon as a single 439afe61c15SRodney W. Grimesbyte is received or the read timer expires. Note that in this case if 440afe61c15SRodney W. Grimesthe timer expires, no bytes are returned. If the timer does not 441afe61c15SRodney W. Grimesexpire, the only way the read can be satisfied is if a byte is received. 442afe61c15SRodney W. GrimesIn this case the read will not block indefinitely waiting for a byte; if 443afe61c15SRodney W. Grimesno byte is received within 4445f1376d7SMike Pritchard.Dv TIME Ns *0.1 445afe61c15SRodney W. Grimesseconds after the read is initiated, 446afe61c15SRodney W. Grimesthe read returns a value of zero, having read no data. If data is 447afe61c15SRodney W. Grimesin the buffer at the time of the read, the timer is started as if 448afe61c15SRodney W. Grimesdata had been received immediately after the read. 4495f1376d7SMike Pritchard.Ss Case D: MIN = 0, TIME = 0 450afe61c15SRodney W. GrimesThe minimum of either the number of bytes requested or the number of 451afe61c15SRodney W. Grimesbytes currently available is returned without waiting for more 452afe61c15SRodney W. Grimesbytes to be input. If no characters are available, read returns a 453afe61c15SRodney W. Grimesvalue of zero, having read no data. 454afe61c15SRodney W. Grimes.Ss Writing Data and Output Processing 455afe61c15SRodney W. GrimesWhen a process writes one or more bytes to a terminal device file, they 456afe61c15SRodney W. Grimesare processed according to the 457afe61c15SRodney W. Grimes.Fa c_oflag 458afe61c15SRodney W. Grimesfield (see the 459afe61c15SRodney W. Grimes.Sx "Output Modes 460afe61c15SRodney W. Grimessection). The 461afe61c15SRodney W. Grimesimplementation may provide a buffering mechanism; as such, when a call to 462edf0e5b3SMike Pritchard.Fn write 463edf0e5b3SMike Pritchardcompletes, all of the bytes written have been scheduled for 464afe61c15SRodney W. Grimestransmission to the device, but the transmission will not necessarily 465afe61c15SRodney W. Grimeshave been completed. 466afe61c15SRodney W. Grimes.\" See also .Sx "6.4.2" for the effects of 467afe61c15SRodney W. Grimes.\" .Dv O_NONBLOCK 468afe61c15SRodney W. Grimes.\" on write. 469afe61c15SRodney W. Grimes.Ss Special Characters 470afe61c15SRodney W. GrimesCertain characters have special functions on input or output or both. 471afe61c15SRodney W. GrimesThese functions are summarized as follows: 472afe61c15SRodney W. Grimes.Bl -tag -width indent 473afe61c15SRodney W. Grimes.It Dv INTR 474afe61c15SRodney W. GrimesSpecial character on input and is recognized if the 475afe61c15SRodney W. Grimes.Dv ISIG 476afe61c15SRodney W. Grimesflag (see the 477afe61c15SRodney W. Grimes.Sx "Local Modes" 478afe61c15SRodney W. Grimessection) is enabled. Generates a 479afe61c15SRodney W. Grimes.Dv SIGINT 480afe61c15SRodney W. Grimessignal which is sent to all processes in the foreground 481afe61c15SRodney W. Grimesprocess group for which the terminal is the controlling 482afe61c15SRodney W. Grimesterminal. If 483afe61c15SRodney W. Grimes.Dv ISIG 484afe61c15SRodney W. Grimesis set, the 485afe61c15SRodney W. Grimes.Dv INTR 486afe61c15SRodney W. Grimescharacter is 487afe61c15SRodney W. Grimesdiscarded when processed. 488afe61c15SRodney W. Grimes.It Dv QUIT 489afe61c15SRodney W. GrimesSpecial character on input and is recognized if the 490afe61c15SRodney W. Grimes.Dv ISIG 491afe61c15SRodney W. Grimesflag is enabled. Generates a 492afe61c15SRodney W. Grimes.Dv SIGQUIT 493afe61c15SRodney W. Grimessignal which is 494afe61c15SRodney W. Grimessent to all processes in the foreground process group 495afe61c15SRodney W. Grimesfor which the terminal is the controlling terminal. If 496afe61c15SRodney W. Grimes.Dv ISIG 497afe61c15SRodney W. Grimesis set, the 498afe61c15SRodney W. Grimes.Dv QUIT 499afe61c15SRodney W. Grimescharacter is discarded when 500afe61c15SRodney W. Grimesprocessed. 501afe61c15SRodney W. Grimes.It Dv ERASE 502afe61c15SRodney W. GrimesSpecial character on input and is recognized if the 503afe61c15SRodney W. Grimes.Dv ICANON 504afe61c15SRodney W. Grimesflag is set. Erases the last character in the 505afe61c15SRodney W. Grimescurrent line; see 506afe61c15SRodney W. Grimes.Sx "Canonical Mode Input Processing" . 507afe61c15SRodney W. GrimesIt does not erase beyond 508afe61c15SRodney W. Grimesthe start of a line, as delimited by an 509afe61c15SRodney W. Grimes.Dv NL , 510afe61c15SRodney W. Grimes.Dv EOF , 511afe61c15SRodney W. Grimesor 512afe61c15SRodney W. Grimes.Dv EOL 513afe61c15SRodney W. Grimescharacter. If 514afe61c15SRodney W. Grimes.Dv ICANON 515afe61c15SRodney W. Grimesis set, the 516afe61c15SRodney W. Grimes.Dv ERASE 517afe61c15SRodney W. Grimescharacter is 518afe61c15SRodney W. Grimesdiscarded when processed. 519afe61c15SRodney W. Grimes.It Dv KILL 520afe61c15SRodney W. GrimesSpecial character on input and is recognized if the 521afe61c15SRodney W. Grimes.Dv ICANON 522afe61c15SRodney W. Grimesflag is set. Deletes the entire line, as 523afe61c15SRodney W. Grimesdelimited by a 524afe61c15SRodney W. Grimes.Dv NL , 525afe61c15SRodney W. Grimes.Dv EOF , 526afe61c15SRodney W. Grimesor 527afe61c15SRodney W. Grimes.Dv EOL 528afe61c15SRodney W. Grimescharacter. If 529afe61c15SRodney W. Grimes.Dv ICANON 530afe61c15SRodney W. Grimesis set, the 531afe61c15SRodney W. Grimes.Dv KILL 532afe61c15SRodney W. Grimescharacter is discarded when processed. 533afe61c15SRodney W. Grimes.It Dv EOF 534afe61c15SRodney W. GrimesSpecial character on input and is recognized if the 535afe61c15SRodney W. Grimes.Dv ICANON 536afe61c15SRodney W. Grimesflag is set. When received, all the bytes 537afe61c15SRodney W. Grimeswaiting to be read are immediately passed to the 538afe61c15SRodney W. Grimesprocess, without waiting for a newline, and the 539afe61c15SRodney W. Grimes.Dv EOF 540afe61c15SRodney W. Grimesis discarded. Thus, if there are no bytes waiting (that 541afe61c15SRodney W. Grimesis, the 542afe61c15SRodney W. Grimes.Dv EOF 543afe61c15SRodney W. Grimesoccurred at the beginning of a line), a byte 544edf0e5b3SMike Pritchardcount of zero is returned from the 545edf0e5b3SMike Pritchard.Fn read , 546afe61c15SRodney W. Grimesrepresenting an end-of-file indication. If 547afe61c15SRodney W. Grimes.Dv ICANON 548afe61c15SRodney W. Grimesis 549afe61c15SRodney W. Grimesset, the 550afe61c15SRodney W. Grimes.Dv EOF 551afe61c15SRodney W. Grimescharacter is discarded when processed. 552081cb6b3SMark Ovens.It Dv NL 553afe61c15SRodney W. GrimesSpecial character on input and is recognized if the 554afe61c15SRodney W. Grimes.Dv ICANON 555afe61c15SRodney W. Grimesflag is set. It is the line delimiter 556afe61c15SRodney W. Grimes.Ql \&\en . 557afe61c15SRodney W. Grimes.It Dv EOL 558afe61c15SRodney W. GrimesSpecial character on input and is recognized if the 559afe61c15SRodney W. Grimes.Dv ICANON 560afe61c15SRodney W. Grimesflag is set. Is an additional line delimiter, 561afe61c15SRodney W. Grimeslike 562afe61c15SRodney W. Grimes.Dv NL . 563afe61c15SRodney W. Grimes.It Dv SUSP 564afe61c15SRodney W. GrimesIf the 565afe61c15SRodney W. Grimes.Dv ISIG 566afe61c15SRodney W. Grimesflag is enabled, receipt of the 567afe61c15SRodney W. Grimes.Dv SUSP 568afe61c15SRodney W. Grimescharacter causes a 569afe61c15SRodney W. Grimes.Dv SIGTSTP 570afe61c15SRodney W. Grimessignal to be sent to all processes in the 571afe61c15SRodney W. Grimesforeground process group for which the terminal is the 572afe61c15SRodney W. Grimescontrolling terminal, and the 573afe61c15SRodney W. Grimes.Dv SUSP 574afe61c15SRodney W. Grimescharacter is 575afe61c15SRodney W. Grimesdiscarded when processed. 576afe61c15SRodney W. Grimes.It Dv STOP 577afe61c15SRodney W. GrimesSpecial character on both input and output and is 578afe61c15SRodney W. Grimesrecognized if the 579afe61c15SRodney W. Grimes.Dv IXON 580afe61c15SRodney W. Grimes(output control) or 581afe61c15SRodney W. Grimes.Dv IXOFF 582afe61c15SRodney W. Grimes(input 583afe61c15SRodney W. Grimescontrol) flag is set. Can be used to temporarily 584afe61c15SRodney W. Grimessuspend output. It is useful with fast terminals to 585afe61c15SRodney W. Grimesprevent output from disappearing before it can be read. 586afe61c15SRodney W. GrimesIf 587afe61c15SRodney W. Grimes.Dv IXON 588afe61c15SRodney W. Grimesis set, the 589afe61c15SRodney W. Grimes.Dv STOP 590afe61c15SRodney W. Grimescharacter is discarded when 591afe61c15SRodney W. Grimesprocessed. 592afe61c15SRodney W. Grimes.It Dv START 593afe61c15SRodney W. GrimesSpecial character on both input and output and is 594afe61c15SRodney W. Grimesrecognized if the 595afe61c15SRodney W. Grimes.Dv IXON 596afe61c15SRodney W. Grimes(output control) or 597afe61c15SRodney W. Grimes.Dv IXOFF 598afe61c15SRodney W. Grimes(input 599afe61c15SRodney W. Grimescontrol) flag is set. Can be used to resume output that 600afe61c15SRodney W. Grimeshas been suspended by a 601afe61c15SRodney W. Grimes.Dv STOP 602afe61c15SRodney W. Grimescharacter. If 603afe61c15SRodney W. Grimes.Dv IXON 604afe61c15SRodney W. Grimesis set, the 605afe61c15SRodney W. Grimes.Dv START 606afe61c15SRodney W. Grimescharacter is discarded when processed. 607081cb6b3SMark Ovens.It Dv CR 608afe61c15SRodney W. GrimesSpecial character on input and is recognized if the 609afe61c15SRodney W. Grimes.Dv ICANON 610afe61c15SRodney W. Grimesflag is set; it is the 611afe61c15SRodney W. Grimes.Ql \&\er , 612afe61c15SRodney W. Grimesas denoted in the 613afe61c15SRodney W. Grimes.Tn \&C 614afe61c15SRodney W. GrimesStandard {2}. When 615afe61c15SRodney W. Grimes.Dv ICANON 616afe61c15SRodney W. Grimesand 617afe61c15SRodney W. Grimes.Dv ICRNL 618afe61c15SRodney W. Grimesare set and 619afe61c15SRodney W. Grimes.Dv IGNCR 620afe61c15SRodney W. Grimesis not set, this character is translated into a 621afe61c15SRodney W. Grimes.Dv NL , 622afe61c15SRodney W. Grimesand 623afe61c15SRodney W. Grimeshas the same effect as a 624afe61c15SRodney W. Grimes.Dv NL 625afe61c15SRodney W. Grimescharacter. 626afe61c15SRodney W. Grimes.El 627afe61c15SRodney W. Grimes.Pp 628afe61c15SRodney W. GrimesThe following special characters are extensions defined by this 629c3939fb3SRuslan Ermilovsystem and are not a part of 630c3939fb3SRuslan Ermilov.St -p1003.1 631c3939fb3SRuslan Ermilovtermios. 632afe61c15SRodney W. Grimes.Bl -tag -width indent 633afe61c15SRodney W. Grimes.It Dv EOL2 634afe61c15SRodney W. GrimesSecondary 635afe61c15SRodney W. Grimes.Dv EOL 636afe61c15SRodney W. Grimescharacter. Same function as 637afe61c15SRodney W. Grimes.Dv EOL . 638afe61c15SRodney W. Grimes.It Dv WERASE 639afe61c15SRodney W. GrimesSpecial character on input and is recognized if the 640afe61c15SRodney W. Grimes.Dv ICANON 641afe61c15SRodney W. Grimesflag is set. Erases the last word in the current 642afe61c15SRodney W. Grimesline according to one of two algorithms. If the 643afe61c15SRodney W. Grimes.Dv ALTWERASE 644afe61c15SRodney W. Grimesflag is not set, first any preceding whitespace is 645afe61c15SRodney W. Grimeserased, and then the maximal sequence of non-whitespace 646afe61c15SRodney W. Grimescharacters. If 647afe61c15SRodney W. Grimes.Dv ALTWERASE 648afe61c15SRodney W. Grimesis set, first any preceding 649afe61c15SRodney W. Grimeswhitespace is erased, and then the maximal sequence 650afe61c15SRodney W. Grimesof alphabetic/underscores or non alphabetic/underscores. 651afe61c15SRodney W. GrimesAs a special case in this second algorithm, the first previous 652afe61c15SRodney W. Grimesnon-whitespace character is skipped in determining 653afe61c15SRodney W. Grimeswhether the preceding word is a sequence of 65468bf8f9eSJoseph Koshyalphabetic/underscores. This sounds confusing but turns 655afe61c15SRodney W. Grimesout to be quite practical. 656afe61c15SRodney W. Grimes.It Dv REPRINT 657afe61c15SRodney W. GrimesSpecial character on input and is recognized if the 658afe61c15SRodney W. Grimes.Dv ICANON 659afe61c15SRodney W. Grimesflag is set. Causes the current input edit line 660afe61c15SRodney W. Grimesto be retyped. 661afe61c15SRodney W. Grimes.It Dv DSUSP 662afe61c15SRodney W. GrimesHas similar actions to the 663afe61c15SRodney W. Grimes.Dv SUSP 664afe61c15SRodney W. Grimescharacter, except that 665afe61c15SRodney W. Grimesthe 666afe61c15SRodney W. Grimes.Dv SIGTSTP 667afe61c15SRodney W. Grimessignal is delivered when one of the processes 668edf0e5b3SMike Pritchardin the foreground process group issues a 669edf0e5b3SMike Pritchard.Fn read 670edf0e5b3SMike Pritchardto the 671afe61c15SRodney W. Grimescontrolling terminal. 672afe61c15SRodney W. Grimes.It Dv LNEXT 673afe61c15SRodney W. GrimesSpecial character on input and is recognized if the 674afe61c15SRodney W. Grimes.Dv IEXTEN 675afe61c15SRodney W. Grimesflag is set. Receipt of this character causes the next 676afe61c15SRodney W. Grimescharacter to be taken literally. 677afe61c15SRodney W. Grimes.It Dv DISCARD 678afe61c15SRodney W. GrimesSpecial character on input and is recognized if the 679afe61c15SRodney W. Grimes.Dv IEXTEN 680afe61c15SRodney W. Grimesflag is set. Receipt of this character toggles the flushing 681afe61c15SRodney W. Grimesof terminal output. 682afe61c15SRodney W. Grimes.It Dv STATUS 683afe61c15SRodney W. GrimesSpecial character on input and is recognized if the 684afe61c15SRodney W. Grimes.Dv ICANON 685afe61c15SRodney W. Grimesflag is set. Receipt of this character causes a 686afe61c15SRodney W. Grimes.Dv SIGINFO 687afe61c15SRodney W. Grimessignal to be sent to the foreground process group of the 688afe61c15SRodney W. Grimesterminal. Also, if the 689afe61c15SRodney W. Grimes.Dv NOKERNINFO 690afe61c15SRodney W. Grimesflag is not set, it 691afe61c15SRodney W. Grimescauses the kernel to write a status message to the terminal 692afe61c15SRodney W. Grimesthat displays the current load average, the name of the 693afe61c15SRodney W. Grimescommand in the foreground, its process ID, the symbolic 694afe61c15SRodney W. Grimeswait channel, the number of user and system seconds used, 695afe61c15SRodney W. Grimesthe percentage of cpu the process is getting, and the resident 696afe61c15SRodney W. Grimesset size of the process. 697afe61c15SRodney W. Grimes.El 698afe61c15SRodney W. Grimes.Pp 699afe61c15SRodney W. GrimesThe 700afe61c15SRodney W. Grimes.Dv NL 701afe61c15SRodney W. Grimesand 702afe61c15SRodney W. Grimes.Dv CR 703afe61c15SRodney W. Grimescharacters cannot be changed. 704afe61c15SRodney W. GrimesThe values for all the remaining characters can be set and are 705afe61c15SRodney W. Grimesdescribed later in the document under 706afe61c15SRodney W. GrimesSpecial Control Characters. 707afe61c15SRodney W. Grimes.Pp 708afe61c15SRodney W. GrimesSpecial 709afe61c15SRodney W. Grimescharacter functions associated with changeable special control characters 710afe61c15SRodney W. Grimescan be disabled individually by setting their value to 711afe61c15SRodney W. Grimes.Dv {_POSIX_VDISABLE} ; 712afe61c15SRodney W. Grimessee 713afe61c15SRodney W. Grimes.Sx "Special Control Characters" . 714afe61c15SRodney W. Grimes.Pp 715afe61c15SRodney W. GrimesIf two or more special characters have the same value, the function 716afe61c15SRodney W. Grimesperformed when that character is received is undefined. 717afe61c15SRodney W. Grimes.Ss Modem Disconnect 718afe61c15SRodney W. GrimesIf a modem disconnect is detected by the terminal interface for a 719afe61c15SRodney W. Grimescontrolling terminal, and if 720afe61c15SRodney W. Grimes.Dv CLOCAL 721afe61c15SRodney W. Grimesis not set in the 722afe61c15SRodney W. Grimes.Fa c_cflag 723afe61c15SRodney W. Grimesfield for 724afe61c15SRodney W. Grimesthe terminal, the 725afe61c15SRodney W. Grimes.Dv SIGHUP 726afe61c15SRodney W. Grimessignal is sent to the controlling 727afe61c15SRodney W. Grimesprocess associated with the terminal. Unless other arrangements have 728afe61c15SRodney W. Grimesbeen made, this causes the controlling process to terminate. 729edf0e5b3SMike PritchardAny subsequent call to the 730edf0e5b3SMike Pritchard.Fn read 731edf0e5b3SMike Pritchardfunction returns the value zero, 732afe61c15SRodney W. Grimesindicating end of file. Thus, processes that read a terminal 733afe61c15SRodney W. Grimesfile and test for end-of-file can terminate appropriately after a 734afe61c15SRodney W. Grimesdisconnect. 735afe61c15SRodney W. Grimes.\" If the 736afe61c15SRodney W. Grimes.\" .Er EIO 737afe61c15SRodney W. Grimes.\" condition specified in 6.1.1.4 that applies 738afe61c15SRodney W. Grimes.\" when the implementation supports job control also exists, it is 739afe61c15SRodney W. Grimes.\" unspecified whether the 740afe61c15SRodney W. Grimes.\" .Dv EOF 741afe61c15SRodney W. Grimes.\" condition or the 742afe61c15SRodney W. Grimes.\" .Pf [ Dv EIO 743afe61c15SRodney W. Grimes.\" ] is returned. 744afe61c15SRodney W. GrimesAny 745edf0e5b3SMike Pritchardsubsequent 746edf0e5b3SMike Pritchard.Fn write 747edf0e5b3SMike Pritchardto the terminal device returns -1, with 748afe61c15SRodney W. Grimes.Va errno 749afe61c15SRodney W. Grimesset to 750afe61c15SRodney W. Grimes.Er EIO , 751afe61c15SRodney W. Grimesuntil the device is closed. 752afe61c15SRodney W. Grimes.Sh General Terminal Interface 753afe61c15SRodney W. Grimes.Ss Closing a Terminal Device File 754afe61c15SRodney W. GrimesThe last process to close a terminal device file causes any output 755afe61c15SRodney W. Grimesto be sent to the device and any input to be discarded. Then, if 756afe61c15SRodney W. Grimes.Dv HUPCL 757afe61c15SRodney W. Grimesis set in the control modes, and the communications port supports a 758afe61c15SRodney W. Grimesdisconnect function, the terminal device performs a disconnect. 759afe61c15SRodney W. Grimes.Ss Parameters That Can Be Set 760afe61c15SRodney W. GrimesRoutines that need to control certain terminal 761afe61c15SRodney W. Grimes.Tn I/O 762afe61c15SRodney W. Grimescharacteristics 763afe61c15SRodney W. Grimesdo so by using the termios structure as defined in the header 764afe61c15SRodney W. Grimes.Aq Pa termios.h . 765afe61c15SRodney W. GrimesThis structure contains minimally four scalar elements of bit flags 766afe61c15SRodney W. Grimesand one array of special characters. The scalar flag elements are 767afe61c15SRodney W. Grimesnamed: 768afe61c15SRodney W. Grimes.Fa c_iflag , 769afe61c15SRodney W. Grimes.Fa c_oflag , 770afe61c15SRodney W. Grimes.Fa c_cflag , 771afe61c15SRodney W. Grimesand 772afe61c15SRodney W. Grimes.Fa c_lflag . 773afe61c15SRodney W. GrimesThe character array is named 774afe61c15SRodney W. Grimes.Fa c_cc , 775afe61c15SRodney W. Grimesand its maximum index is 776afe61c15SRodney W. Grimes.Dv NCCS . 777afe61c15SRodney W. Grimes.Ss Input Modes 778afe61c15SRodney W. GrimesValues of the 779afe61c15SRodney W. Grimes.Fa c_iflag 780afe61c15SRodney W. Grimesfield describe the basic 781afe61c15SRodney W. Grimesterminal input control, and are composed of 782afe61c15SRodney W. Grimesfollowing masks: 783afe61c15SRodney W. Grimes.Pp 784afe61c15SRodney W. Grimes.Bl -tag -width IMAXBEL -offset indent -compact 785afe61c15SRodney W. Grimes.It Dv IGNBRK 786afe61c15SRodney W. Grimes/* ignore BREAK condition */ 787afe61c15SRodney W. Grimes.It Dv BRKINT 788afe61c15SRodney W. Grimes/* map BREAK to SIGINTR */ 789afe61c15SRodney W. Grimes.It Dv IGNPAR 790afe61c15SRodney W. Grimes/* ignore (discard) parity errors */ 791afe61c15SRodney W. Grimes.It Dv PARMRK 792afe61c15SRodney W. Grimes/* mark parity and framing errors */ 793afe61c15SRodney W. Grimes.It Dv INPCK 794afe61c15SRodney W. Grimes/* enable checking of parity errors */ 795afe61c15SRodney W. Grimes.It Dv ISTRIP 796afe61c15SRodney W. Grimes/* strip 8th bit off chars */ 797afe61c15SRodney W. Grimes.It Dv INLCR 798afe61c15SRodney W. Grimes/* map NL into CR */ 799afe61c15SRodney W. Grimes.It Dv IGNCR 800afe61c15SRodney W. Grimes/* ignore CR */ 801afe61c15SRodney W. Grimes.It Dv ICRNL 802afe61c15SRodney W. Grimes/* map CR to NL (ala CRMOD) */ 803afe61c15SRodney W. Grimes.It Dv IXON 804afe61c15SRodney W. Grimes/* enable output flow control */ 805afe61c15SRodney W. Grimes.It Dv IXOFF 806afe61c15SRodney W. Grimes/* enable input flow control */ 807afe61c15SRodney W. Grimes.It Dv IXANY 808afe61c15SRodney W. Grimes/* any char will restart after stop */ 809afe61c15SRodney W. Grimes.It Dv IMAXBEL 810afe61c15SRodney W. Grimes/* ring bell on input queue full */ 811afe61c15SRodney W. Grimes.El 812afe61c15SRodney W. Grimes.Pp 813afe61c15SRodney W. GrimesIn the context of asynchronous serial data transmission, a break 814afe61c15SRodney W. Grimescondition is defined as a sequence of zero-valued bits that continues for 815afe61c15SRodney W. Grimesmore than the time to send one byte. The entire sequence of zero-valued 816afe61c15SRodney W. Grimesbits is interpreted as a single break condition, even if it continues for 817afe61c15SRodney W. Grimesa time equivalent to more than one byte. In contexts other than 818afe61c15SRodney W. Grimesasynchronous serial data transmission the definition of a break condition 819afe61c15SRodney W. Grimesis implementation defined. 820afe61c15SRodney W. Grimes.Pp 821afe61c15SRodney W. GrimesIf 822afe61c15SRodney W. Grimes.Dv IGNBRK 823afe61c15SRodney W. Grimesis set, a break condition detected on input is ignored, that 824afe61c15SRodney W. Grimesis, not put on the input queue and therefore not read by any process. If 825afe61c15SRodney W. Grimes.Dv IGNBRK 826afe61c15SRodney W. Grimesis not set and 827afe61c15SRodney W. Grimes.Dv BRKINT 828afe61c15SRodney W. Grimesis set, the break condition flushes the 829afe61c15SRodney W. Grimesinput and output queues and if the terminal is the controlling terminal 830afe61c15SRodney W. Grimesof a foreground process group, the break condition generates a 831afe61c15SRodney W. Grimessingle 832afe61c15SRodney W. Grimes.Dv SIGINT 833afe61c15SRodney W. Grimessignal to that foreground process group. If neither 834afe61c15SRodney W. Grimes.Dv IGNBRK 835afe61c15SRodney W. Grimesnor 836afe61c15SRodney W. Grimes.Dv BRKINT 837afe61c15SRodney W. Grimesis set, a break condition is read as a single 838afe61c15SRodney W. Grimes.Ql \&\e0 , 839afe61c15SRodney W. Grimesor if 840afe61c15SRodney W. Grimes.Dv PARMRK 841afe61c15SRodney W. Grimesis set, as 842afe61c15SRodney W. Grimes.Ql \&\e377 , 843afe61c15SRodney W. Grimes.Ql \&\e0 , 844afe61c15SRodney W. Grimes.Ql \&\e0 . 845afe61c15SRodney W. Grimes.Pp 846afe61c15SRodney W. GrimesIf 847afe61c15SRodney W. Grimes.Dv IGNPAR 848afe61c15SRodney W. Grimesis set, a byte with a framing or parity error (other than 849afe61c15SRodney W. Grimesbreak) is ignored. 850afe61c15SRodney W. Grimes.Pp 851afe61c15SRodney W. GrimesIf 852afe61c15SRodney W. Grimes.Dv PARMRK 853afe61c15SRodney W. Grimesis set, and 854afe61c15SRodney W. Grimes.Dv IGNPAR 855afe61c15SRodney W. Grimesis not set, a byte with a framing or parity 856afe61c15SRodney W. Grimeserror (other than break) is given to the application as the 857afe61c15SRodney W. Grimesthree-character sequence 858afe61c15SRodney W. Grimes.Ql \&\e377 , 859afe61c15SRodney W. Grimes.Ql \&\e0 , 860afe61c15SRodney W. GrimesX, where 861afe61c15SRodney W. Grimes.Ql \&\e377 , 862afe61c15SRodney W. Grimes.Ql \&\e0 863afe61c15SRodney W. Grimesis a two-character 864afe61c15SRodney W. Grimesflag preceding each sequence and X is the data of the character received 865afe61c15SRodney W. Grimesin error. To avoid ambiguity in this case, if 866afe61c15SRodney W. Grimes.Dv ISTRIP 867afe61c15SRodney W. Grimesis not set, a valid 868afe61c15SRodney W. Grimescharacter of 869afe61c15SRodney W. Grimes.Ql \&\e377 870afe61c15SRodney W. Grimesis given to the application as 871afe61c15SRodney W. Grimes.Ql \&\e377 , 872afe61c15SRodney W. Grimes.Ql \&\e377 . 873afe61c15SRodney W. GrimesIf 874afe61c15SRodney W. Grimesneither 875afe61c15SRodney W. Grimes.Dv PARMRK 876afe61c15SRodney W. Grimesnor 877afe61c15SRodney W. Grimes.Dv IGNPAR 878afe61c15SRodney W. Grimesis set, a framing or parity error (other than 879afe61c15SRodney W. Grimesbreak) is given to the application as a single character 880afe61c15SRodney W. Grimes.Ql \&\e0 . 881afe61c15SRodney W. Grimes.Pp 882afe61c15SRodney W. GrimesIf 883afe61c15SRodney W. Grimes.Dv INPCK 884afe61c15SRodney W. Grimesis set, input parity checking is enabled. If 885afe61c15SRodney W. Grimes.Dv INPCK 886afe61c15SRodney W. Grimesis not set, 887afe61c15SRodney W. Grimesinput parity checking is disabled, allowing output parity generation 888afe61c15SRodney W. Grimeswithout input parity errors. Note that whether input parity checking is 889afe61c15SRodney W. Grimesenabled or disabled is independent of whether parity detection is enabled 890afe61c15SRodney W. Grimesor disabled (see 891afe61c15SRodney W. Grimes.Sx "Control Modes" ) . 892afe61c15SRodney W. GrimesIf parity detection is enabled but input 893afe61c15SRodney W. Grimesparity checking is disabled, the hardware to which the terminal is 894afe61c15SRodney W. Grimesconnected recognizes the parity bit, but the terminal special file 895afe61c15SRodney W. Grimesdoes not check whether this bit is set correctly or not. 896afe61c15SRodney W. Grimes.Pp 897afe61c15SRodney W. GrimesIf 898afe61c15SRodney W. Grimes.Dv ISTRIP 899afe61c15SRodney W. Grimesis set, valid input bytes are first stripped to seven bits, 900afe61c15SRodney W. Grimesotherwise all eight bits are processed. 901afe61c15SRodney W. Grimes.Pp 902afe61c15SRodney W. GrimesIf 903afe61c15SRodney W. Grimes.Dv INLCR 904afe61c15SRodney W. Grimesis set, a received 905afe61c15SRodney W. Grimes.Dv NL 906afe61c15SRodney W. Grimescharacter is translated into a 907afe61c15SRodney W. Grimes.Dv CR 908afe61c15SRodney W. Grimescharacter. If 909afe61c15SRodney W. Grimes.Dv IGNCR 910afe61c15SRodney W. Grimesis set, a received 911afe61c15SRodney W. Grimes.Dv CR 912afe61c15SRodney W. Grimescharacter is ignored (not 913afe61c15SRodney W. Grimesread). If 914afe61c15SRodney W. Grimes.Dv IGNCR 915afe61c15SRodney W. Grimesis not set and 916afe61c15SRodney W. Grimes.Dv ICRNL 917afe61c15SRodney W. Grimesis set, a received 918afe61c15SRodney W. Grimes.Dv CR 919afe61c15SRodney W. Grimescharacter is 920afe61c15SRodney W. Grimestranslated into a 921afe61c15SRodney W. Grimes.Dv NL 922afe61c15SRodney W. Grimescharacter. 923afe61c15SRodney W. Grimes.Pp 924afe61c15SRodney W. GrimesIf 925afe61c15SRodney W. Grimes.Dv IXON 926afe61c15SRodney W. Grimesis set, start/stop output control is enabled. A received 927afe61c15SRodney W. Grimes.Dv STOP 928afe61c15SRodney W. Grimescharacter suspends output and a received 929afe61c15SRodney W. Grimes.Dv START 930afe61c15SRodney W. Grimescharacter 9316d249eeeSSheldon Hearnrestarts output. 9326d249eeeSSheldon HearnIf 933afe61c15SRodney W. Grimes.Dv IXANY 934afe61c15SRodney W. Grimesis also set, then any character may 9356d249eeeSSheldon Hearnrestart output. 9366d249eeeSSheldon HearnWhen 937afe61c15SRodney W. Grimes.Dv IXON 938afe61c15SRodney W. Grimesis set, 939afe61c15SRodney W. Grimes.Dv START 940afe61c15SRodney W. Grimesand 941afe61c15SRodney W. Grimes.Dv STOP 942afe61c15SRodney W. Grimescharacters are not 943afe61c15SRodney W. Grimesread, but merely perform flow control functions. When 944afe61c15SRodney W. Grimes.Dv IXON 945afe61c15SRodney W. Grimesis not set, 946afe61c15SRodney W. Grimesthe 947afe61c15SRodney W. Grimes.Dv START 948afe61c15SRodney W. Grimesand 949afe61c15SRodney W. Grimes.Dv STOP 950afe61c15SRodney W. Grimescharacters are read. 951afe61c15SRodney W. Grimes.Pp 952afe61c15SRodney W. GrimesIf 953afe61c15SRodney W. Grimes.Dv IXOFF 954afe61c15SRodney W. Grimesis set, start/stop input control is enabled. The system shall 955afe61c15SRodney W. Grimestransmit one or more 956afe61c15SRodney W. Grimes.Dv STOP 957afe61c15SRodney W. Grimescharacters, which are intended to cause the 958afe61c15SRodney W. Grimesterminal device to stop transmitting data, as needed to prevent the input 959afe61c15SRodney W. Grimesqueue from overflowing and causing the undefined behavior described in 960afe61c15SRodney W. Grimes.Sx "Input Processing and Reading Data" , 961afe61c15SRodney W. Grimesand shall transmit one or more 962afe61c15SRodney W. Grimes.Dv START 963afe61c15SRodney W. Grimescharacters, which are 964afe61c15SRodney W. Grimesintended to cause the terminal device to resume transmitting data, as 965afe61c15SRodney W. Grimessoon as the device can continue transmitting data without risk of 966afe61c15SRodney W. Grimesoverflowing the input queue. The precise conditions under which 967afe61c15SRodney W. Grimes.Dv STOP 968afe61c15SRodney W. Grimesand 969afe61c15SRodney W. GrimesSTART 970afe61c15SRodney W. Grimescharacters are transmitted are implementation defined. 971afe61c15SRodney W. Grimes.Pp 972afe61c15SRodney W. GrimesIf 973afe61c15SRodney W. Grimes.Dv IMAXBEL 974afe61c15SRodney W. Grimesis set and the input queue is full, subsequent input shall cause an 975afe61c15SRodney W. Grimes.Tn ASCII 976afe61c15SRodney W. Grimes.Dv BEL 97743d1df33SAlexander Langercharacter to be transmitted to 978afe61c15SRodney W. Grimesthe output queue. 979afe61c15SRodney W. Grimes.Pp 980edf0e5b3SMike PritchardThe initial input control value after 981edf0e5b3SMike Pritchard.Fn open 982edf0e5b3SMike Pritchardis implementation defined. 983afe61c15SRodney W. Grimes.Ss Output Modes 984afe61c15SRodney W. GrimesValues of the 985afe61c15SRodney W. Grimes.Fa c_oflag 986afe61c15SRodney W. Grimesfield describe the basic terminal output control, 987afe61c15SRodney W. Grimesand are composed of the following masks: 988afe61c15SRodney W. Grimes.Pp 989afe61c15SRodney W. Grimes.Bl -tag -width OXTABS -offset indent -compact 990afe61c15SRodney W. Grimes.It Dv OPOST 991afe61c15SRodney W. Grimes/* enable following output processing */ 992afe61c15SRodney W. Grimes.It Dv ONLCR 993afe61c15SRodney W. Grimes/* map NL to CR-NL (ala 994afe61c15SRodney W. Grimes.Dv CRMOD ) 995afe61c15SRodney W. Grimes*/ 9963617ddfcSAssar Westerlund.It Dv OCRNL 9973617ddfcSAssar Westerlund/* map CR to NL */ 998afe61c15SRodney W. Grimes.It Dv OXTABS 999afe61c15SRodney W. Grimes/* expand tabs to spaces */ 1000afe61c15SRodney W. Grimes.It Dv ONOEOT 1001afe61c15SRodney W. Grimes/* discard 1002afe61c15SRodney W. Grimes.Dv EOT Ns 's 1003afe61c15SRodney W. Grimes.Ql \&^D 1004afe61c15SRodney W. Grimeson output) */ 10053617ddfcSAssar Westerlund.It Dv ONOCR 10063617ddfcSAssar Westerlund/* do not transmit CRs on column 0 */ 10073617ddfcSAssar Westerlund.It Dv ONLRET 10083617ddfcSAssar Westerlund/* on the termianl NL performs the CR function */ 1009afe61c15SRodney W. Grimes.El 1010afe61c15SRodney W. Grimes.Pp 1011afe61c15SRodney W. GrimesIf 1012afe61c15SRodney W. Grimes.Dv OPOST 1013afe61c15SRodney W. Grimesis set, the remaining flag masks are interpreted as follows; 1014afe61c15SRodney W. Grimesotherwise characters are transmitted without change. 1015afe61c15SRodney W. Grimes.Pp 1016afe61c15SRodney W. GrimesIf 1017afe61c15SRodney W. Grimes.Dv ONLCR 1018afe61c15SRodney W. Grimesis set, newlines are translated to carriage return, linefeeds. 1019afe61c15SRodney W. Grimes.Pp 1020afe61c15SRodney W. GrimesIf 10213617ddfcSAssar Westerlund.Dv OCRNL 10223617ddfcSAssar Westerlundis set, carriage returns are translated to newlines. 10233617ddfcSAssar Westerlund.Pp 10243617ddfcSAssar WesterlundIf 1025afe61c15SRodney W. Grimes.Dv OXTABS 1026afe61c15SRodney W. Grimesis set, tabs are expanded to the appropriate number of 1027afe61c15SRodney W. Grimesspaces (assuming 8 column tab stops). 1028afe61c15SRodney W. Grimes.Pp 1029afe61c15SRodney W. GrimesIf 1030afe61c15SRodney W. Grimes.Dv ONOEOT 1031afe61c15SRodney W. Grimesis set, 1032afe61c15SRodney W. Grimes.Tn ASCII 103368161b6bSRuslan Ermilov.Dv EOT Ns 's 1034afe61c15SRodney W. Grimesare discarded on output. 10353617ddfcSAssar Westerlund.Pp 10363617ddfcSAssar WesterlundIf 10373617ddfcSAssar Westerlund.Dv ONOCR 10383617ddfcSAssar Westerlundis set, no CR character is transmitted when at column 0 (first position). 10393617ddfcSAssar Westerlund.Pp 10403617ddfcSAssar WesterlundIf 10413617ddfcSAssar Westerlund.Dv ONLRET 10423617ddfcSAssar Westerlundis set, the NL character is assumed to do the carriage-return function; 10433617ddfcSAssar Westerlundthe column pointer will be set to 0. 1044afe61c15SRodney W. Grimes.Ss Control Modes 1045afe61c15SRodney W. GrimesValues of the 1046afe61c15SRodney W. Grimes.Fa c_cflag 1047afe61c15SRodney W. Grimesfield describe the basic 1048afe61c15SRodney W. Grimesterminal hardware control, and are composed of the 1049afe61c15SRodney W. Grimesfollowing masks. 1050afe61c15SRodney W. GrimesNot all values 1051afe61c15SRodney W. Grimesspecified are supported by all hardware. 1052afe61c15SRodney W. Grimes.Pp 1053afe61c15SRodney W. Grimes.Bl -tag -width CRTSXIFLOW -offset indent -compact 1054afe61c15SRodney W. Grimes.It Dv CSIZE 1055afe61c15SRodney W. Grimes/* character size mask */ 1056afe61c15SRodney W. Grimes.It Dv CS5 1057afe61c15SRodney W. Grimes/* 5 bits (pseudo) */ 1058afe61c15SRodney W. Grimes.It Dv CS6 1059afe61c15SRodney W. Grimes/* 6 bits */ 1060afe61c15SRodney W. Grimes.It Dv CS7 1061afe61c15SRodney W. Grimes/* 7 bits */ 1062afe61c15SRodney W. Grimes.It Dv CS8 1063afe61c15SRodney W. Grimes/* 8 bits */ 1064afe61c15SRodney W. Grimes.It Dv CSTOPB 1065afe61c15SRodney W. Grimes/* send 2 stop bits */ 1066afe61c15SRodney W. Grimes.It Dv CREAD 1067afe61c15SRodney W. Grimes/* enable receiver */ 1068afe61c15SRodney W. Grimes.It Dv PARENB 1069afe61c15SRodney W. Grimes/* parity enable */ 1070afe61c15SRodney W. Grimes.It Dv PARODD 1071afe61c15SRodney W. Grimes/* odd parity, else even */ 1072afe61c15SRodney W. Grimes.It Dv HUPCL 1073afe61c15SRodney W. Grimes/* hang up on last close */ 1074afe61c15SRodney W. Grimes.It Dv CLOCAL 1075afe61c15SRodney W. Grimes/* ignore modem status lines */ 1076afe61c15SRodney W. Grimes.It Dv CCTS_OFLOW 1077afe61c15SRodney W. Grimes/* 1078afe61c15SRodney W. Grimes.Dv CTS 1079afe61c15SRodney W. Grimesflow control of output */ 1080afe61c15SRodney W. Grimes.It Dv CRTSCTS 1081afe61c15SRodney W. Grimes/* same as 1082afe61c15SRodney W. Grimes.Dv CCTS_OFLOW 1083afe61c15SRodney W. Grimes*/ 1084afe61c15SRodney W. Grimes.It Dv CRTS_IFLOW 1085afe61c15SRodney W. Grimes/* RTS flow control of input */ 1086afe61c15SRodney W. Grimes.It Dv MDMBUF 1087afe61c15SRodney W. Grimes/* flow control output via Carrier */ 1088afe61c15SRodney W. Grimes.El 1089afe61c15SRodney W. Grimes.Pp 1090afe61c15SRodney W. GrimesThe 1091afe61c15SRodney W. Grimes.Dv CSIZE 1092afe61c15SRodney W. Grimesbits specify the byte size in bits for both transmission and 1093afe61c15SRodney W. Grimesreception. The 1094afe61c15SRodney W. Grimes.Fa c_cflag 1095afe61c15SRodney W. Grimesis masked with 1096afe61c15SRodney W. Grimes.Dv CSIZE 1097afe61c15SRodney W. Grimesand compared with the 1098afe61c15SRodney W. Grimesvalues 1099afe61c15SRodney W. Grimes.Dv CS5 , 1100afe61c15SRodney W. Grimes.Dv CS6 , 1101afe61c15SRodney W. Grimes.Dv CS7 , 1102afe61c15SRodney W. Grimesor 1103afe61c15SRodney W. Grimes.Dv CS8 . 1104afe61c15SRodney W. GrimesThis size does not include the parity bit, if any. If 1105afe61c15SRodney W. Grimes.Dv CSTOPB 1106afe61c15SRodney W. Grimesis set, two stop bits are used, otherwise one stop bit. For example, at 1107afe61c15SRodney W. Grimes110 baud, two stop bits are normally used. 1108afe61c15SRodney W. Grimes.Pp 1109afe61c15SRodney W. GrimesIf 1110afe61c15SRodney W. Grimes.Dv CREAD 1111afe61c15SRodney W. Grimesis set, the receiver is enabled. Otherwise, no character is 1112afe61c15SRodney W. Grimesreceived. 1113afe61c15SRodney W. GrimesNot all hardware supports this bit. In fact, this flag 1114afe61c15SRodney W. Grimesis pretty silly and if it were not part of the 11154b66483fSRuslan Ermilov.Nm 1116afe61c15SRodney W. Grimesspecification 1117afe61c15SRodney W. Grimesit would be omitted. 1118afe61c15SRodney W. Grimes.Pp 1119afe61c15SRodney W. GrimesIf 1120afe61c15SRodney W. Grimes.Dv PARENB 1121afe61c15SRodney W. Grimesis set, parity generation and detection are enabled and a parity 1122afe61c15SRodney W. Grimesbit is added to each character. If parity is enabled, 1123afe61c15SRodney W. Grimes.Dv PARODD 1124afe61c15SRodney W. Grimesspecifies 1125afe61c15SRodney W. Grimesodd parity if set, otherwise even parity is used. 1126afe61c15SRodney W. Grimes.Pp 1127afe61c15SRodney W. GrimesIf 1128afe61c15SRodney W. Grimes.Dv HUPCL 1129afe61c15SRodney W. Grimesis set, the modem control lines for the port are lowered 1130afe61c15SRodney W. Grimeswhen the last process with the port open closes the port or the process 1131afe61c15SRodney W. Grimesterminates. The modem connection is broken. 1132afe61c15SRodney W. Grimes.Pp 1133afe61c15SRodney W. GrimesIf 1134afe61c15SRodney W. Grimes.Dv CLOCAL 1135afe61c15SRodney W. Grimesis set, a connection does not depend on the state of the modem 1136afe61c15SRodney W. Grimesstatus lines. If 1137afe61c15SRodney W. Grimes.Dv CLOCAL 1138afe61c15SRodney W. Grimesis clear, the modem status lines are 1139afe61c15SRodney W. Grimesmonitored. 1140afe61c15SRodney W. Grimes.Pp 1141edf0e5b3SMike PritchardUnder normal circumstances, a call to the 1142edf0e5b3SMike Pritchard.Fn open 1143edf0e5b3SMike Pritchardfunction waits for 1144afe61c15SRodney W. Grimesthe modem connection to complete. However, if the 1145afe61c15SRodney W. Grimes.Dv O_NONBLOCK 1146afe61c15SRodney W. Grimesflag is set 1147afe61c15SRodney W. Grimesor if 1148afe61c15SRodney W. Grimes.Dv CLOCAL 1149edf0e5b3SMike Pritchardhas been set, the 1150edf0e5b3SMike Pritchard.Fn open 1151edf0e5b3SMike Pritchardfunction returns 1152afe61c15SRodney W. Grimesimmediately without waiting for the connection. 1153afe61c15SRodney W. Grimes.Pp 1154afe61c15SRodney W. GrimesThe 1155afe61c15SRodney W. Grimes.Dv CCTS_OFLOW 1156afe61c15SRodney W. Grimes.Pf ( Dv CRTSCTS ) 1157afe61c15SRodney W. Grimesflag is currently unused. 1158afe61c15SRodney W. Grimes.Pp 1159afe61c15SRodney W. GrimesIf 1160afe61c15SRodney W. Grimes.Dv MDMBUF 1161afe61c15SRodney W. Grimesis set then output flow control is controlled by the state 1162afe61c15SRodney W. Grimesof Carrier Detect. 1163afe61c15SRodney W. Grimes.Pp 1164afe61c15SRodney W. GrimesIf the object for which the control modes are set is not an asynchronous 1165afe61c15SRodney W. Grimesserial connection, some of the modes may be ignored; for example, if an 1166afe61c15SRodney W. Grimesattempt is made to set the baud rate on a network connection to a 1167afe61c15SRodney W. Grimesterminal on another host, the baud rate may or may not be set on the 1168afe61c15SRodney W. Grimesconnection between that terminal and the machine it is directly connected 1169afe61c15SRodney W. Grimesto. 1170afe61c15SRodney W. Grimes.Ss Local Modes 1171afe61c15SRodney W. GrimesValues of the 1172afe61c15SRodney W. Grimes.Fa c_lflag 1173afe61c15SRodney W. Grimesfield describe the control of 1174afe61c15SRodney W. Grimesvarious functions, and are composed of the following 1175afe61c15SRodney W. Grimesmasks. 1176afe61c15SRodney W. Grimes.Pp 1177afe61c15SRodney W. Grimes.Bl -tag -width NOKERNINFO -offset indent -compact 1178afe61c15SRodney W. Grimes.It Dv ECHOKE 1179afe61c15SRodney W. Grimes/* visual erase for line kill */ 1180afe61c15SRodney W. Grimes.It Dv ECHOE 1181afe61c15SRodney W. Grimes/* visually erase chars */ 1182afe61c15SRodney W. Grimes.It Dv ECHO 1183afe61c15SRodney W. Grimes/* enable echoing */ 1184afe61c15SRodney W. Grimes.It Dv ECHONL 1185afe61c15SRodney W. Grimes/* echo 1186afe61c15SRodney W. Grimes.Dv NL 1187afe61c15SRodney W. Grimeseven if 1188afe61c15SRodney W. Grimes.Dv ECHO 1189afe61c15SRodney W. Grimesis off */ 1190afe61c15SRodney W. Grimes.It Dv ECHOPRT 1191afe61c15SRodney W. Grimes/* visual erase mode for hardcopy */ 1192afe61c15SRodney W. Grimes.It Dv ECHOCTL 1193afe61c15SRodney W. Grimes/* echo control chars as ^(Char) */ 1194afe61c15SRodney W. Grimes.It Dv ISIG 1195afe61c15SRodney W. Grimes/* enable signals 1196afe61c15SRodney W. Grimes.Dv INTR , 1197afe61c15SRodney W. Grimes.Dv QUIT , 1198afe61c15SRodney W. Grimes.Dv [D]SUSP 1199afe61c15SRodney W. Grimes*/ 1200afe61c15SRodney W. Grimes.It Dv ICANON 1201afe61c15SRodney W. Grimes/* canonicalize input lines */ 1202afe61c15SRodney W. Grimes.It Dv ALTWERASE 1203afe61c15SRodney W. Grimes/* use alternate 1204afe61c15SRodney W. Grimes.Dv WERASE 1205afe61c15SRodney W. Grimesalgorithm */ 1206afe61c15SRodney W. Grimes.It Dv IEXTEN 1207afe61c15SRodney W. Grimes/* enable 1208afe61c15SRodney W. Grimes.Dv DISCARD 1209afe61c15SRodney W. Grimesand 1210afe61c15SRodney W. Grimes.Dv LNEXT 1211afe61c15SRodney W. Grimes*/ 1212afe61c15SRodney W. Grimes.It Dv EXTPROC 1213afe61c15SRodney W. Grimes/* external processing */ 1214afe61c15SRodney W. Grimes.It Dv TOSTOP 1215afe61c15SRodney W. Grimes/* stop background jobs from output */ 1216afe61c15SRodney W. Grimes.It Dv FLUSHO 1217afe61c15SRodney W. Grimes/* output being flushed (state) */ 1218afe61c15SRodney W. Grimes.It Dv NOKERNINFO 1219afe61c15SRodney W. Grimes/* no kernel output from 1220afe61c15SRodney W. Grimes.Dv VSTATUS 1221afe61c15SRodney W. Grimes*/ 1222afe61c15SRodney W. Grimes.It Dv PENDIN 1223afe61c15SRodney W. Grimes/* XXX retype pending input (state) */ 1224afe61c15SRodney W. Grimes.It Dv NOFLSH 1225afe61c15SRodney W. Grimes/* don't flush after interrupt */ 1226afe61c15SRodney W. Grimes.El 1227afe61c15SRodney W. Grimes.Pp 1228afe61c15SRodney W. GrimesIf 1229afe61c15SRodney W. Grimes.Dv ECHO 1230afe61c15SRodney W. Grimesis set, input characters are echoed back to the terminal. If 1231afe61c15SRodney W. Grimes.Dv ECHO 1232afe61c15SRodney W. Grimesis not set, input characters are not echoed. 1233afe61c15SRodney W. Grimes.Pp 1234afe61c15SRodney W. GrimesIf 1235afe61c15SRodney W. Grimes.Dv ECHOE 1236afe61c15SRodney W. Grimesand 1237afe61c15SRodney W. Grimes.Dv ICANON 1238afe61c15SRodney W. Grimesare set, the 1239afe61c15SRodney W. Grimes.Dv ERASE 1240afe61c15SRodney W. Grimescharacter causes the terminal 1241afe61c15SRodney W. Grimesto erase the last character in the current line from the display, if 1242afe61c15SRodney W. Grimespossible. If there is no character to erase, an implementation may echo 1243afe61c15SRodney W. Grimesan indication that this was the case or do nothing. 1244afe61c15SRodney W. Grimes.Pp 1245afe61c15SRodney W. GrimesIf 1246afe61c15SRodney W. Grimes.Dv ECHOK 1247afe61c15SRodney W. Grimesand 1248afe61c15SRodney W. Grimes.Dv ICANON 1249afe61c15SRodney W. Grimesare set, the 1250afe61c15SRodney W. Grimes.Dv KILL 1251afe61c15SRodney W. Grimescharacter causes 1252afe61c15SRodney W. Grimesthe current line to be discarded and the system echoes the 1253afe61c15SRodney W. Grimes.Ql \&\en 1254afe61c15SRodney W. Grimescharacter after the 1255afe61c15SRodney W. Grimes.Dv KILL 1256afe61c15SRodney W. Grimescharacter. 1257afe61c15SRodney W. Grimes.Pp 1258afe61c15SRodney W. GrimesIf 1259afe61c15SRodney W. Grimes.Dv ECHOKE 1260afe61c15SRodney W. Grimesand 1261afe61c15SRodney W. Grimes.Dv ICANON 1262afe61c15SRodney W. Grimesare set, the 1263afe61c15SRodney W. Grimes.Dv KILL 1264afe61c15SRodney W. Grimescharacter causes 1265afe61c15SRodney W. Grimesthe current line to be discarded and the system causes 1266afe61c15SRodney W. Grimesthe terminal 1267afe61c15SRodney W. Grimesto erase the line from the display. 1268afe61c15SRodney W. Grimes.Pp 1269afe61c15SRodney W. GrimesIf 1270afe61c15SRodney W. Grimes.Dv ECHOPRT 1271afe61c15SRodney W. Grimesand 1272afe61c15SRodney W. Grimes.Dv ICANON 1273afe61c15SRodney W. Grimesare set, the system assumes 1274afe61c15SRodney W. Grimesthat the display is a printing device and prints a 1275afe61c15SRodney W. Grimesbackslash and the erased characters when processing 1276afe61c15SRodney W. Grimes.Dv ERASE 1277afe61c15SRodney W. Grimescharacters, followed by a forward slash. 1278afe61c15SRodney W. Grimes.Pp 1279afe61c15SRodney W. GrimesIf 1280afe61c15SRodney W. Grimes.Dv ECHOCTL 1281afe61c15SRodney W. Grimesis set, the system echoes control characters 1282afe61c15SRodney W. Grimesin a visible fashion using a caret followed by the control character. 1283afe61c15SRodney W. Grimes.Pp 1284afe61c15SRodney W. GrimesIf 1285afe61c15SRodney W. Grimes.Dv ALTWERASE 1286afe61c15SRodney W. Grimesis set, the system uses an alternative algorithm 1287afe61c15SRodney W. Grimesfor determining what constitutes a word when processing 1288afe61c15SRodney W. Grimes.Dv WERASE 1289afe61c15SRodney W. Grimescharacters (see 1290afe61c15SRodney W. Grimes.Dv WERASE ) . 1291afe61c15SRodney W. Grimes.Pp 1292afe61c15SRodney W. GrimesIf 1293afe61c15SRodney W. Grimes.Dv ECHONL 1294afe61c15SRodney W. Grimesand 1295afe61c15SRodney W. Grimes.Dv ICANON 1296afe61c15SRodney W. Grimesare set, the 1297afe61c15SRodney W. Grimes.Ql \&\en 1298afe61c15SRodney W. Grimescharacter echoes even if 1299afe61c15SRodney W. Grimes.Dv ECHO 1300afe61c15SRodney W. Grimesis not set. 1301afe61c15SRodney W. Grimes.Pp 1302afe61c15SRodney W. GrimesIf 1303afe61c15SRodney W. Grimes.Dv ICANON 1304afe61c15SRodney W. Grimesis set, canonical processing is enabled. This enables the 1305afe61c15SRodney W. Grimeserase and kill edit functions, and the assembly of input characters into 1306afe61c15SRodney W. Grimeslines delimited by 1307afe61c15SRodney W. Grimes.Dv NL , 1308afe61c15SRodney W. Grimes.Dv EOF , 1309afe61c15SRodney W. Grimesand 1310afe61c15SRodney W. Grimes.Dv EOL , 1311afe61c15SRodney W. Grimesas described in 1312afe61c15SRodney W. Grimes.Sx "Canonical Mode Input Processing" . 1313afe61c15SRodney W. Grimes.Pp 1314afe61c15SRodney W. GrimesIf 1315afe61c15SRodney W. Grimes.Dv ICANON 1316afe61c15SRodney W. Grimesis not set, read requests are satisfied directly from the input 1317afe61c15SRodney W. Grimesqueue. A read is not satisfied until at least 13185f1376d7SMike Pritchard.Dv MIN 1319afe61c15SRodney W. Grimesbytes have been 1320afe61c15SRodney W. Grimesreceived or the timeout value 13215f1376d7SMike Pritchard.Dv TIME 1322afe61c15SRodney W. Grimesexpired between bytes. The time value 1323afe61c15SRodney W. Grimesrepresents tenths of seconds. See 1324afe61c15SRodney W. Grimes.Sx "Noncanonical Mode Input Processing" 1325afe61c15SRodney W. Grimesfor more details. 1326afe61c15SRodney W. Grimes.Pp 1327afe61c15SRodney W. GrimesIf 1328afe61c15SRodney W. Grimes.Dv ISIG 1329afe61c15SRodney W. Grimesis set, each input character is checked against the special 1330afe61c15SRodney W. Grimescontrol characters 1331afe61c15SRodney W. Grimes.Dv INTR , 1332afe61c15SRodney W. Grimes.Dv QUIT , 1333afe61c15SRodney W. Grimesand 1334afe61c15SRodney W. Grimes.Dv SUSP 1335afe61c15SRodney W. Grimes(job control only). If an input 1336afe61c15SRodney W. Grimescharacter matches one of these control characters, the function 1337afe61c15SRodney W. Grimesassociated with that character is performed. If 1338afe61c15SRodney W. Grimes.Dv ISIG 1339afe61c15SRodney W. Grimesis not set, no 1340afe61c15SRodney W. Grimeschecking is done. Thus these special input functions are possible only 1341afe61c15SRodney W. Grimesif 1342afe61c15SRodney W. Grimes.Dv ISIG 1343afe61c15SRodney W. Grimesis set. 1344afe61c15SRodney W. Grimes.Pp 1345afe61c15SRodney W. GrimesIf 1346afe61c15SRodney W. Grimes.Dv IEXTEN 1347afe61c15SRodney W. Grimesis set, implementation-defined functions are recognized 1348afe61c15SRodney W. Grimesfrom the input data. How 1349afe61c15SRodney W. Grimes.Dv IEXTEN 1350afe61c15SRodney W. Grimesbeing set 1351afe61c15SRodney W. Grimesinteracts with 1352afe61c15SRodney W. Grimes.Dv ICANON , 1353afe61c15SRodney W. Grimes.Dv ISIG , 1354afe61c15SRodney W. Grimes.Dv IXON , 1355afe61c15SRodney W. Grimesor 1356afe61c15SRodney W. Grimes.Dv IXOFF 1357afe61c15SRodney W. Grimesis implementation defined. 1358afe61c15SRodney W. GrimesIf 1359afe61c15SRodney W. Grimes.Dv IEXTEN 1360afe61c15SRodney W. Grimesis not set, then 1361afe61c15SRodney W. Grimesimplementation-defined functions are not recognized, and the 1362afe61c15SRodney W. Grimescorresponding input characters are not processed as described for 1363afe61c15SRodney W. Grimes.Dv ICANON , 1364afe61c15SRodney W. Grimes.Dv ISIG , 1365afe61c15SRodney W. Grimes.Dv IXON , 1366afe61c15SRodney W. Grimesand 1367afe61c15SRodney W. Grimes.Dv IXOFF . 1368afe61c15SRodney W. Grimes.Pp 1369afe61c15SRodney W. GrimesIf 1370afe61c15SRodney W. Grimes.Dv NOFLSH 1371afe61c15SRodney W. Grimesis set, the normal flush of the input and output queues 1372afe61c15SRodney W. Grimesassociated with the 1373afe61c15SRodney W. Grimes.Dv INTR , 1374afe61c15SRodney W. Grimes.Dv QUIT , 1375afe61c15SRodney W. Grimesand 1376afe61c15SRodney W. Grimes.Dv SUSP 1377afe61c15SRodney W. Grimescharacters 1378afe61c15SRodney W. Grimesare not be done. 1379afe61c15SRodney W. Grimes.Pp 1380afe61c15SRodney W. GrimesIf 1381afe61c15SRodney W. Grimes.Dv TOSTOP 1382afe61c15SRodney W. Grimesis set, the signal 1383afe61c15SRodney W. Grimes.Dv SIGTTOU 1384afe61c15SRodney W. Grimesis sent to the process group of a process that tries to write to 1385afe61c15SRodney W. Grimesits controlling terminal if it is not in the foreground process group for 1386afe61c15SRodney W. Grimesthat terminal. This signal, by default, stops the members of the process 1387afe61c15SRodney W. Grimesgroup. Otherwise, the output generated by that process is output to the 1388afe61c15SRodney W. Grimescurrent output stream. Processes that are blocking or ignoring 1389afe61c15SRodney W. Grimes.Dv SIGTTOU 1390afe61c15SRodney W. Grimessignals are excepted and allowed to produce output and the 1391afe61c15SRodney W. Grimes.Dv SIGTTOU 1392afe61c15SRodney W. Grimessignal 1393afe61c15SRodney W. Grimesis not sent. 1394afe61c15SRodney W. Grimes.Pp 1395afe61c15SRodney W. GrimesIf 1396afe61c15SRodney W. Grimes.Dv NOKERNINFO 1397afe61c15SRodney W. Grimesis set, the kernel does not produce a status message 1398afe61c15SRodney W. Grimeswhen processing 1399afe61c15SRodney W. Grimes.Dv STATUS 1400afe61c15SRodney W. Grimescharacters (see 1401afe61c15SRodney W. Grimes.Dv STATUS ) . 1402afe61c15SRodney W. Grimes.Ss Special Control Characters 1403afe61c15SRodney W. GrimesThe special control characters values are defined by the array 1404afe61c15SRodney W. Grimes.Fa c_cc . 1405afe61c15SRodney W. GrimesThis table lists the array index, the corresponding special character, 1406afe61c15SRodney W. Grimesand the system default value. For an accurate list of 1407afe61c15SRodney W. Grimesthe system defaults, consult the header file 1408afe61c15SRodney W. Grimes.Aq Pa ttydefaults.h . 1409afe61c15SRodney W. Grimes.Pp 1410afe61c15SRodney W. Grimes.Bl -column "Index Name" "Special Character" -offset indent -compact 1411afe61c15SRodney W. Grimes.It Em "Index Name Special Character Default Value" 1412afe61c15SRodney W. Grimes.It Dv VEOF Ta EOF Ta \&^D 1413afe61c15SRodney W. Grimes.It Dv VEOL Ta EOL Ta _POSIX_VDISABLE 1414afe61c15SRodney W. Grimes.It Dv VEOL2 Ta EOL2 Ta _POSIX_VDISABLE 1415afe61c15SRodney W. Grimes.It Dv VERASE Ta ERASE Ta \&^? Ql \&\e177 1416afe61c15SRodney W. Grimes.It Dv VWERASE Ta WERASE Ta \&^W 1417afe61c15SRodney W. Grimes.It Dv VKILL Ta KILL Ta \&^U 1418afe61c15SRodney W. Grimes.It Dv VREPRINT Ta REPRINT Ta \&^R 1419afe61c15SRodney W. Grimes.It Dv VINTR Ta INTR Ta \&^C 1420afe61c15SRodney W. Grimes.It Dv VQUIT Ta QUIT Ta \&^\e\e Ql \&\e34 1421afe61c15SRodney W. Grimes.It Dv VSUSP Ta SUSP Ta \&^Z 1422afe61c15SRodney W. Grimes.It Dv VDSUSP Ta DSUSP Ta \&^Y 1423afe61c15SRodney W. Grimes.It Dv VSTART Ta START Ta \&^Q 1424afe61c15SRodney W. Grimes.It Dv VSTOP Ta STOP Ta \&^S 1425afe61c15SRodney W. Grimes.It Dv VLNEXT Ta LNEXT Ta \&^V 1426afe61c15SRodney W. Grimes.It Dv VDISCARD Ta DISCARD Ta \&^O 1427afe61c15SRodney W. Grimes.It Dv VMIN Ta --- Ta \&1 1428afe61c15SRodney W. Grimes.It Dv VTIME Ta --- Ta \&0 1429afe61c15SRodney W. Grimes.It Dv VSTATUS Ta STATUS Ta \&^T 1430afe61c15SRodney W. Grimes.El 1431afe61c15SRodney W. Grimes.Pp 1432afe61c15SRodney W. GrimesIf the 1433afe61c15SRodney W. Grimesvalue of one of the changeable special control characters (see 1434afe61c15SRodney W. Grimes.Sx "Special Characters" ) 1435afe61c15SRodney W. Grimesis 1436afe61c15SRodney W. Grimes.Dv {_POSIX_VDISABLE} , 1437afe61c15SRodney W. Grimesthat function is disabled; that is, no input 1438afe61c15SRodney W. Grimesdata is recognized as the disabled special character. 1439afe61c15SRodney W. GrimesIf 1440afe61c15SRodney W. Grimes.Dv ICANON 1441afe61c15SRodney W. Grimesis 1442afe61c15SRodney W. Grimesnot set, the value of 1443afe61c15SRodney W. Grimes.Dv {_POSIX_VDISABLE} 1444afe61c15SRodney W. Grimeshas no special meaning for the 1445afe61c15SRodney W. Grimes.Dv VMIN 1446afe61c15SRodney W. Grimesand 1447afe61c15SRodney W. Grimes.Dv VTIME 1448afe61c15SRodney W. Grimesentries of the 1449afe61c15SRodney W. Grimes.Fa c_cc 1450afe61c15SRodney W. Grimesarray. 1451afe61c15SRodney W. Grimes.Pp 1452afe61c15SRodney W. GrimesThe initial values of the flags and control characters 1453edf0e5b3SMike Pritchardafter 1454edf0e5b3SMike Pritchard.Fn open 1455edf0e5b3SMike Pritchardis set according to 1456afe61c15SRodney W. Grimesthe values in the header 1457afe61c15SRodney W. Grimes.Aq Pa sys/ttydefaults.h . 1458