mirror of https://github.com/mkerrisk/man-pages
110 lines
4.2 KiB
Plaintext
110 lines
4.2 KiB
Plaintext
.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
|
|
.TH "TCGETATTR" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
|
|
.\" tcgetattr
|
|
.SH NAME
|
|
tcgetattr \- get the parameters associated with the terminal
|
|
.SH SYNOPSIS
|
|
.LP
|
|
\fB#include <termios.h>
|
|
.br
|
|
.sp
|
|
int tcgetattr(int\fP \fIfildes\fP\fB, struct termios *\fP\fItermios_p\fP\fB);
|
|
.br
|
|
\fP
|
|
.SH DESCRIPTION
|
|
.LP
|
|
The \fItcgetattr\fP() function shall get the parameters associated
|
|
with the terminal referred to by \fIfildes\fP and store
|
|
them in the \fBtermios\fP structure referenced by \fItermios_p\fP.
|
|
The \fIfildes\fP argument is an open file descriptor
|
|
associated with a terminal.
|
|
.LP
|
|
The \fItermios_p\fP argument is a pointer to a \fBtermios\fP structure.
|
|
.LP
|
|
The \fItcgetattr\fP() operation is allowed from any process.
|
|
.LP
|
|
If the terminal device supports different input and output baud rates,
|
|
the baud rates stored in the \fBtermios\fP structure
|
|
returned by \fItcgetattr\fP() shall reflect the actual baud rates,
|
|
even if they are equal. If differing baud rates are not
|
|
supported, the rate returned as the output baud rate shall be the
|
|
actual baud rate. If the terminal device does not support split
|
|
baud rates, the input baud rate stored in the \fBtermios\fP structure
|
|
shall be the output rate (as one of the symbolic
|
|
values).
|
|
.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 \fItcgetattr\fP() function shall fail if:
|
|
.TP 7
|
|
.B EBADF
|
|
The \fIfildes\fP argument is not a valid file descriptor.
|
|
.TP 7
|
|
.B ENOTTY
|
|
The file associated with \fIfildes\fP is not a terminal.
|
|
.sp
|
|
.LP
|
|
\fIThe following sections are informative.\fP
|
|
.SH EXAMPLES
|
|
.LP
|
|
None.
|
|
.SH APPLICATION USAGE
|
|
.LP
|
|
None.
|
|
.SH RATIONALE
|
|
.LP
|
|
Care must be taken when changing the terminal attributes. Applications
|
|
should always do a \fItcgetattr\fP(), save the
|
|
\fBtermios\fP structure values returned, and then do a \fItcsetattr\fP(),
|
|
changing only
|
|
the necessary fields. The application should use the values saved
|
|
from the \fItcgetattr\fP() to reset the terminal state whenever
|
|
it is done with the terminal. This is necessary because terminal attributes
|
|
apply to the underlying port and not to each individual
|
|
open instance; that is, all processes that have used the terminal
|
|
see the latest attribute changes.
|
|
.LP
|
|
A program that uses these functions should be written to catch all
|
|
signals and take other appropriate actions to ensure that
|
|
when the program terminates, whether planned or not, the terminal
|
|
device's state is restored to its original state.
|
|
.LP
|
|
Existing practice dealing with error returns when only part of a request
|
|
can be honored is based on calls to the \fIioctl\fP() function. In
|
|
historical BSD and System V implementations, the corresponding \fIioctl\fP()
|
|
returns zero if the requested actions were semantically correct, even
|
|
if some of the
|
|
requested changes could not be made. Many existing applications assume
|
|
this behavior and would no longer work correctly if the
|
|
return value were changed from zero to -1 in this case.
|
|
.LP
|
|
Note that either specification has a problem. When zero is returned,
|
|
it implies everything succeeded even if some of the changes
|
|
were not made. When -1 is returned, it implies everything failed even
|
|
though some of the changes were made.
|
|
.LP
|
|
Applications that need all of the requested changes made to work properly
|
|
should follow \fItcsetattr\fP() with a call to \fItcgetattr\fP() and
|
|
compare the appropriate field
|
|
values.
|
|
.SH FUTURE DIRECTIONS
|
|
.LP
|
|
None.
|
|
.SH SEE ALSO
|
|
.LP
|
|
\fItcsetattr\fP() , the Base Definitions volume of IEEE\ Std\ 1003.1-2001,
|
|
Chapter 11, General Terminal Interface, \fI<termios.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 .
|