cfgetispeed cfsetispeed cfgetospeed cfsetospeed cfsetspeed cfmakeraw tcgetattr tcsetattr - manipulating the termios structure
Lb libc
The
cfgetispeed (,);
cfsetispeed (,);
cfgetospeed (,);
cfsetospeed ();
and
cfsetspeed ();
functions are provided for getting and setting the baud rate values in
the termios structure.
The effects of the functions on the terminal as described below
do not become effective, nor are all errors detected, until the
tcsetattr ();
function is called.
Certain values for baud rates set in the termios structure and passed to
tcsetattr ();
have special meanings.
These are discussed in the portion of the manual page that describes the
tcsetattr ();
function.
#define B0 0 #define B50 50 #define B75 75 #define B110 110 #define B134 134 #define B150 150 #define B200 200 #define B300 300 #define B600 600 #define B1200 1200 #define B1800 1800 #define B2400 2400 #define B4800 4800 #define B9600 9600 #define B19200 19200 #define B38400 38400 #ifndef _POSIX_SOURCE #define EXTA 19200 #define EXTB 38400 #endif /*_POSIX_SOURCE */
The
cfgetispeed ();
function returns the input baud rate in the termios structure referenced by
Fa tp .
The
cfsetispeed ();
function sets the input baud rate in the termios structure referenced by
Fa tp
to
Fa speed .
The
cfgetospeed ();
function returns the output baud rate in the termios structure referenced by
Fa tp .
The
cfsetospeed ();
function sets the output baud rate in the termios structure referenced by
Fa tp
to
Fa speed .
The
cfsetspeed ();
function sets both the input and output baud rate in the termios structure
referenced by
Fa tp
to
Fa speed .
Upon successful completion, the functions
cfsetispeed (,);
cfsetospeed (,);
and
cfsetspeed ();
return a value of 0.
Otherwise, a value of -1 is returned and the global variable
errno
is set to indicate the error.
In all the functions, although Fa fd is an open file descriptor, the functions affect the underlying terminal file, not just the open file description associated with the particular file descriptor.
The
cfmakeraw ();
function sets the flags stored in the termios structure to a state disabling
all input and output processing, giving a
``raw I/O path''
It should be noted that there is no function to reverse this effect.
This is because there are a variety of processing options that could be
re-enabled and the correct method is for an application to snapshot the
current terminal state using the function
tcgetattr (,);
setting raw mode with
cfmakeraw ();
and the subsequent
tcsetattr (,);
and then using another
tcsetattr ();
with the saved state to revert to the previous terminal state.
The
tcgetattr ();
function copies the parameters associated with the terminal referenced
by
Fa fd
in the termios structure referenced by
Fa tp .
This function is allowed from a background process, however, the terminal
attributes may be subsequently changed by a foreground process.
The
tcsetattr ();
function sets the parameters associated with the terminal from the
termios structure referenced by
Fa tp .
The
Fa action
argument is created by
or 'ing
the following values, as specified in the include file
In termios.h .
The 0 baud rate is used to terminate the connection.
If 0 is specified as the output speed to the function
tcsetattr (,);
modem control will no longer be asserted on the terminal, disconnecting
the terminal.
If zero is specified as the input speed to the function
tcsetattr (,);
the input baud rate will be set to the same value as that specified by
the output baud rate.
If
tcsetattr ();
is unable to make any of the requested changes, it returns -1 and
sets errno.
Otherwise, it makes all of the requested changes it can.
If the specified input and output baud rates differ and are a combination
that is not supported, neither baud rate is changed.
Upon successful completion, the functions
tcgetattr ();
and
tcsetattr ();
return a value of 0.
Otherwise, they
return -1 and the global variable
errno
is set to indicate the error, as follows:
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |