diff options
Diffstat (limited to 'man3p/tcsetattr.3p')
-rw-r--r-- | man3p/tcsetattr.3p | 159 |
1 files changed, 159 insertions, 0 deletions
diff --git a/man3p/tcsetattr.3p b/man3p/tcsetattr.3p new file mode 100644 index 000000000..1a6b9131e --- /dev/null +++ b/man3p/tcsetattr.3p @@ -0,0 +1,159 @@ +.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved +.TH "TCSETATTR" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual" +.\" tcsetattr +.SH NAME +tcsetattr \- set the parameters associated with the terminal +.SH SYNOPSIS +.LP +\fB#include <termios.h> +.br +.sp +int tcsetattr(int\fP \fIfildes\fP\fB, int\fP \fIoptional_actions\fP\fB, +.br +\ \ \ \ \ \ const struct termios *\fP\fItermios_p\fP\fB); +.br +\fP +.SH DESCRIPTION +.LP +The \fItcsetattr\fP() function shall set the parameters associated +with the terminal referred to by the open file descriptor +\fIfildes\fP (an open file descriptor associated with a terminal) +from the \fBtermios\fP structure referenced by \fItermios_p\fP +as follows: +.IP " *" 3 +If \fIoptional_actions\fP is TCSANOW, the change shall occur immediately. +.LP +.IP " *" 3 +If \fIoptional_actions\fP is TCSADRAIN, the change shall occur after +all output written to \fIfildes\fP is transmitted. This +function should be used when changing parameters that affect output. +.LP +.IP " *" 3 +If \fIoptional_actions\fP is TCSAFLUSH, the change shall occur after +all output written to \fIfildes\fP is transmitted, and +all input so far received but not read shall be discarded before the +change is made. +.LP +.LP +If the output baud rate stored in the \fBtermios\fP structure pointed +to by \fItermios_p\fP is the zero baud rate, B0, the +modem control lines shall no longer be asserted. Normally, this shall +disconnect the line. +.LP +If the input baud rate stored in the \fBtermios\fP structure pointed +to by \fItermios_p\fP is 0, the input baud rate given to +the hardware is the same as the output baud rate stored in the \fBtermios\fP +structure. +.LP +The \fItcsetattr\fP() function shall return successfully if it was +able to perform any of the requested actions, even if some +of the requested actions could not be performed. It shall set all +the attributes that the implementation supports as requested and +leave all the attributes not supported by the implementation unchanged. +If no part of the request can be honored, it shall return +-1 and set \fIerrno\fP to [EINVAL]. If the input and output baud rates +differ and are a combination that is not supported, neither +baud rate shall be changed. A subsequent call to \fItcgetattr\fP() +shall return the +actual state of the terminal device (reflecting both the changes made +and not made in the previous \fItcsetattr\fP() call). The +\fItcsetattr\fP() function shall not change the values found in the +\fBtermios\fP structure under any circumstances. +.LP +The effect of \fItcsetattr\fP() is undefined if the value of the \fBtermios\fP +structure pointed to by \fItermios_p\fP was +not derived from the result of a call to \fItcgetattr\fP() on \fIfildes\fP; +an +application should modify only fields and flags defined by this volume +of IEEE\ Std\ 1003.1-2001 between the call to \fItcgetattr\fP() and +\fItcsetattr\fP(), leaving all other fields and flags +unmodified. +.LP +No actions defined by this volume of IEEE\ Std\ 1003.1-2001, other +than a call to \fItcsetattr\fP() or a close of the +last file descriptor in the system associated with this terminal device, +shall cause any of the terminal attributes defined by this +volume of IEEE\ Std\ 1003.1-2001 to change. +.LP +If \fItcsetattr\fP() is called from a process which is a member of +a background process group on a \fIfildes\fP associated +with its controlling terminal: +.IP " *" 3 +If the calling process is blocking or ignoring SIGTTOU signals, the +operation completes normally and no signal is sent. +.LP +.IP " *" 3 +Otherwise, a SIGTTOU signal shall be sent to the process group. +.LP +.SH RETURN VALUE +.LP +Upon successful completion, 0 shall be returned. Otherwise, -1 shall +be returned and \fIerrno\fP set to indicate the error. +.SH ERRORS +.LP +The \fItcsetattr\fP() function shall fail if: +.TP 7 +.B EBADF +The \fIfildes\fP argument is not a valid file descriptor. +.TP 7 +.B EINTR +A signal interrupted \fItcsetattr\fP(). +.TP 7 +.B EINVAL +The \fIoptional_actions\fP argument is not a supported value, or an +attempt was made to change an attribute represented in the +\fBtermios\fP structure to an unsupported value. +.TP 7 +.B ENOTTY +The file associated with \fIfildes\fP is not a terminal. +.sp +.LP +The \fItcsetattr\fP() function may fail if: +.TP 7 +.B EIO +The process group of the writing process is orphaned, and the writing +process is not ignoring or blocking SIGTTOU. +.sp +.LP +\fIThe following sections are informative.\fP +.SH EXAMPLES +.LP +None. +.SH APPLICATION USAGE +.LP +If trying to change baud rates, applications should call \fItcsetattr\fP() +then call \fItcgetattr\fP() in order to determine what baud rates +were actually selected. +.SH RATIONALE +.LP +The \fItcsetattr\fP() function can be interrupted in the following +situations: +.IP " *" 3 +It is interrupted while waiting for output to drain. +.LP +.IP " *" 3 +It is called from a process in a background process group and SIGTTOU +is caught. +.LP +.LP +See also the RATIONALE section in \fItcgetattr\fP() . +.SH FUTURE DIRECTIONS +.LP +Using an input baud rate of 0 to set the input rate equal to the output +rate may not necessarily be supported in a future +version of this volume of IEEE\ Std\ 1003.1-2001. +.SH SEE ALSO +.LP +\fIcfgetispeed\fP() , \fItcgetattr\fP() , the Base Definitions +volume of IEEE\ Std\ 1003.1-2001, Chapter 11, General Terminal Interface, +\fI<termios.h>\fP, \fI<unistd.h>\fP +.SH COPYRIGHT +Portions of this text are reprinted and reproduced in electronic form +from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology +-- Portable Operating System Interface (POSIX), The Open Group Base +Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of +Electrical and Electronics Engineers, Inc and The Open Group. In the +event of any discrepancy between this version and the original IEEE and +The Open Group Standard, the original IEEE and The Open Group Standard +is the referee document. The original Standard can be obtained online at +http://www.opengroup.org/unix/online.html . |