summaryrefslogtreecommitdiffstats
path: root/man3p/tcsetattr.3p
diff options
context:
space:
mode:
Diffstat (limited to 'man3p/tcsetattr.3p')
-rw-r--r--man3p/tcsetattr.3p159
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 .