Chapter Contents |
Previous |
Next |
tcsetattr |
Portability: | POSIX.1 conforming |
SYNOPSIS | |
DESCRIPTION | |
termios structure | |
RETURN VALUE | |
EXAMPLE | |
RELATED FUNCTIONS |
SYNOPSIS |
#include <termios.h> int tcsetattr(int fileDescriptor, int actions, struct termios *terminto);
DESCRIPTION |
tcsetattr
set the attributes of a terminal device. The attributes are
stored in a
termios
structure
prior to calling the
tcsetattr
function. The normal sequence is to call
tcgetattr
to obtain the current attribute settings, modify the
termios
structure to contain
the new settings, and then set the terminal attributes with a call to
tcsetattr
.
The following arguments are passed to
tcsetattr
:
fileDescriptor
action
action
are defined in
<termios.h>
and may be one of the following:
terminto
termios
structure. The members of
termios
, which is declared in
<termios.h>
, are flags that identify terminal
modes and control characters. The
tcsetattr
function sets the attributes of the terminal referred to
by
fileDescriptor
based
on the information contained in this structure.
The
termios
structure is declared in
<termios.h>
as follows:
typedef int tcflag_t; typedef char cc_t; #define NCCS 11 /* number of special control characters */ struct termios { tcflag_t c_cflag; /* control modes */ tcflag_t c_iflag; /* input modes */ tcflag_t c_lflag; /* local modes */ tcflag_t c_oflag; /* output modes */ cc_t c_cc[NCCS] ; /* control characters and values */ };
Each of the members of type
tcflag_t
is constructed from bitmasks that are also declared in
<termios.h>
. The
c_cc[NCCS]
array contains control characters
that have special meaning for terminal handling.
Refer to The POSIX.1 Standard: A Programmer's
Guide, by Fred Zlotnick, for portable information about the bitmasks
of the
termios
structure.
Also refer to Assembler Callable Services for OpenEdition MVS
(SC23-3020) for operating-system-specific details.
RETURN VALUE |
tcsetattr
returns a
0
if successful and a
-1
if unsuccessful. If
tcsetattr
is called from a background process, with a file descriptor that refers
to the controlling terminal for the process, a
SIGTTOU
signal may be generated. This will cause the function call
to be unsuccessful, returning a
-1
and setting
errno
to
EINTR
. If
SIGTTOU
is blocked, the function call proceeds
normally.
EXAMPLE |
The following example illustrates the
use of
tcsetattr
to change
the terminal attributes of a TTY device:
#include <sys/types.h> #include <termios.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> #define NOTATTY 1 main() { int ttyDevice = STDOUT_FILENO; struct termios termAttributes; /* Make sure file descriptor is for a TTY device. */ if ( ! isatty(ttyDevice) ) return(NOTATTY); /* Get terminal attributes and then determine if terminal */ /* start and stop is enabled. If IXON is on, turn it off */ /* and call tcsetattr. */ else { if (tcgetattr(ttyDevice, &termAttributes) != 0) { perror("tcgetattr error"); return(EXIT_FAILURE); } else { if (termAttributes.c_iflag & IXON) { termAttributes.c_iflag = termAttributes.c_iflag ^ IXON; if (tcsetattr(ttyDevice, TCSANOW, &termAttributes) != 0) { perror("tcsetattr error"); return(EXIT_FAILURE); } printf("IXON disabled. START and STOP characters n"); printf("will be passed to the application.n"); } else printf("IXON was already set to 0.n"); } } return(EXIT_SUCCESS); }
RELATED FUNCTIONS |
Chapter Contents |
Previous |
Next |
Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.