TCSETATTR(3C)           Standard C Library Functions           TCSETATTR(3C)
NAME
       tcsetattr - set the parameters associated with the terminal
SYNOPSIS
       #include <termios.h>       
int tcsetattr(
int fildes, 
int optional_actions,            
const struct termios *termios_p);
DESCRIPTION
       The 
tcsetattr() function sets the parameters associated with the
       terminal referred to by the open file descriptor 
fildes (an open file
       descriptor associated with a terminal) from the 
termios structure
       (see 
termio(4I)) referenced by 
termios_p as follows:
           o      If 
optional_actions is 
TCSANOW, the change will occur
                  immediately.
           o      If 
optional_actions is 
TCSADRAIN, the change will occur
                  after all output written to 
fildes is transmitted. This
                  function should be used when changing parameters that
                  affect output.
           o      If 
optional_actions is 
TCSAFLUSH, the change will occur
                  after all output written to 
fildes is transmitted, and all
                  input so far received but not read will be discarded
                  before the change is made.
       If the output baud rate stored in the 
termios structure pointed to by       
termios_p is the zero baud rate, B0, the modem control lines will no
       longer be asserted. Normally, this will disconnect the line.
       If the input baud rate stored in the 
termios structure pointed to by       
termios_p is 0, the input baud rate given to the hardware will be the
       same as the output baud rate stored in the 
termios structure.
       The 
tcsetattr() function will 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 will set all the attributes that
       implementation supports as requested and leave all the attributes not
       supported by the implementation unchanged. If no part of the request
       can be honoured, it will return 
-1 and set 
errno to 
EINVAL. If the
       input and output baud rates differ and are a combination that is not
       supported, neither baud rate is changed. A subsequent call to       
tcgetattr(3C) will return the actual state of the terminal device
       (reflecting both the changes made and not made in the previous       
tcsetattr() call). The 
tcsetattr() function will not change the
       values in the 
termios structure whether or not it actually accepts
       them.
       The effect of 
tcsetattr() is undefined if the value of the 
termios       structure pointed to by 
termios_p was not derived from the result of
       a call to 
tcgetattr(3C) on 
fildes; an application should modify only
       fields and flags defined by this document between the call to       
tcgetattr(3C) and 
tcsetattr(), leaving all other fields and flags
       unmodified.
       No actions defined by this document, other than a call to 
tcsetattr()       or a close of the last file descriptor in the system associated with
       this terminal device, will cause any of the terminal attributes
       defined by this document to change.
       Attempts to use 
tcsetattr() from a process which is a member of a
       background process group on a 
fildes associated with its controlling
       terminal, will cause the process group to be sent a 
SIGTTOU signal.
       If the calling process is blocking or ignoring 
SIGTTOU signals, the
       process is allowed to perform the operation, and no signal is sent.
USAGE
       If trying to change baud rates, applications should call 
tcsetattr()       then call 
tcgetattr(3C) in order to determine what baud rates were
       actually selected.
RETURN VALUES
       Upon successful completion, 
0 is returned. Otherwise, 
-1 is returned
       and 
errno is set to indicate the error.
ERRORS
       The 
tcsetattr() function will fail if:       
EBADF                 The 
fildes argument is not a valid file descriptor.       
EINTR                 A signal interrupted 
tcsettattr().       
EINVAL                 The 
optional_actions argument is not a supported value, or
                 an attempt was made to change an attribute represented in
                 the 
termios structure to an unsupported value.       
ENOTTY                 The file associated with 
fildes is not a terminal.
       The 
tcsetattr() function may fail if:       
EIO              The process group of the writing process is orphaned, and the
              writing process is not ignoring or blocking 
SIGTTOU.
ATTRIBUTES
       See 
attributes(7) for descriptions of the following attributes:
       +--------------------+--------------------------------+
       |  ATTRIBUTE TYPE    |        ATTRIBUTE VALUE         |
       +--------------------+--------------------------------+
       |Interface Stability | Standard                       |
       +--------------------+--------------------------------+
       |MT-Level            | MT-Safe, and Async-Signal-Safe |
       +--------------------+--------------------------------+
SEE ALSO
       cfgetispeed(3C), 
tcgetattr(3C), 
termio(4I), 
attributes(7),       
standards(7)                               August 14, 2002                 TCSETATTR(3C)