1 .\" Copyright (c) 1991, 1993
2 .\" The Regents of the University of California. All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
12 .\" 3. Neither the name of the University nor the names of its contributors
13 .\" may be used to endorse or promote products derived from this software
14 .\" without specific prior written permission.
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" @(#)tcsetattr.3 8.3 (Berkeley) 1/2/94
29 .\" $FreeBSD: src/lib/libc/gen/tcsetattr.3,v 1.6.2.4 2002/12/29 16:35:34 schweikh Exp $
44 .Nd manipulating the termios structure
50 .Fn cfgetispeed "const struct termios *t"
52 .Fn cfsetispeed "struct termios *t" "speed_t speed"
54 .Fn cfgetospeed "const struct termios *t"
56 .Fn cfsetospeed "struct termios *t" "speed_t speed"
58 .Fn cfsetspeed "struct termios *t" "speed_t speed"
60 .Fn cfmakeraw "struct termios *t"
62 .Fn cfmakesane "struct termios *t"
64 .Fn tcgetattr "int fd" "struct termios *t"
66 .Fn tcsetattr "int fd" "int action" "const struct termios *t"
74 functions are provided for getting and setting the termios structure.
83 functions are provided for getting and setting the baud rate values in
84 the termios structure.
85 The effects of the functions on the terminal as described below
86 do not become effective, nor are all errors detected, until the
89 Certain values for baud rates set in the termios structure and passed to
91 have special meanings.
92 These are discussed in the portion of the manual page that describes the
95 .Sh GETTING AND SETTING THE BAUD RATE
96 The input and output baud rates are found in the termios structure.
99 is typedef'd in the include file
101 The value of the integer corresponds directly to the baud rate being
102 represented, however, the following symbolic values are defined.
126 #define B115200 115200
127 #define B230400 230400
130 #endif /* __BSD_VISIBLE */
135 function returns the input baud rate in the termios structure referenced by
140 function sets the input baud rate in the termios structure referenced by
147 function returns the output baud rate in the termios structure referenced by
152 function sets the output baud rate in the termios structure referenced by
159 function sets both the input and output baud rate in the termios structure
165 Upon successful completion, the functions
171 Otherwise, a value of -1 is returned and the global variable
173 is set to indicate the error.
174 .Sh GETTING AND SETTING THE TERMIOS STATE
175 This section describes the functions that are used to control the general
177 Unless otherwise noted for a specific command, these functions are restricted
178 from use by background processes.
179 Attempts to perform these operations shall cause the process group to be sent
183 If the calling process is blocking or ignoring
185 signals, the process is allowed to perform the operation and the
189 In all the functions, although
191 is an open file descriptor, the functions affect the underlying terminal
192 file, not just the open file description associated with the particular
197 function sets the flags stored in the termios structure to a state disabling
198 all input and output processing, giving a
202 function sets them to a state similar to those of a newly created
204 It should be noted that there is no function to reverse this effect.
205 This is because there are a variety of processing options that could be
206 re-enabled and the correct method is for an application to snapshot the
207 current terminal state using the function
209 setting raw or sane mode with
215 and then using another
217 with the saved state to revert to the previous terminal state.
221 function copies the parameters associated with the terminal referenced
224 in the termios structure referenced by
226 This function is allowed from a background process, however, the terminal
227 attributes may be subsequently changed by a foreground process.
231 function sets the parameters associated with the terminal from the
232 termios structure referenced by
238 the following values, as specified in the include file
240 .Bl -tag -width ".Dv TCSADRAIN"
242 The change occurs immediately.
244 The change occurs after all output written to
246 has been transmitted to the terminal.
249 should be used when changing parameters that affect output.
251 The change occurs after all output written to
253 has been transmitted to the terminal.
254 Additionally, any input that has been received but not read is discarded.
260 value, the values of the
268 The 0 baud rate is used to terminate the connection.
269 If 0 is specified as the output speed to the function
271 modem control will no longer be asserted on the terminal, disconnecting
274 If zero is specified as the input speed to the function
276 the input baud rate will be set to the same value as that specified by
277 the output baud rate.
281 is unable to make any of the requested changes, it returns -1 and
284 Otherwise, it makes all of the requested changes it can.
285 If the specified input and output baud rates differ and are a combination
286 that is not supported, neither baud rate is changed.
288 Upon successful completion, the functions
294 return -1 and the global variable
296 is set to indicate the error, as follows:
305 was not a valid file descriptor.
309 function was interrupted by a signal.
315 function was not valid, or an attempt was made to change an attribute
316 represented in the termios structure to an unsupported value.
318 The file associated with the
338 functions are expected to be compliant with the
351 function are extensions to the