mirror of https://github.com/mkerrisk/man-pages
165 lines
6.1 KiB
Plaintext
165 lines
6.1 KiB
Plaintext
.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
|
|
.TH "TCSETATTR" 3P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
|
|
.\" tcsetattr
|
|
.SH PROLOG
|
|
This manual page is part of the POSIX Programmer's Manual.
|
|
The Linux implementation of this interface may differ (consult
|
|
the corresponding Linux manual page for details of Linux behavior),
|
|
or the interface may not be implemented on Linux.
|
|
.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 .
|