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(7I))  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 transmit-
           ted.  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 transmit-
           ted, 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  implemen-
     tation 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 termi-
     nal 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(5) for descriptions of the  following  attri-
     butes:

     ______________________________________________________________
    |       ATTRIBUTE TYPE        |        ATTRIBUTE VALUE        |
    |_____________________________|_______________________________|
    | MT-Level                    | MT-Safe, and Async-Signal-Safe|
    |_____________________________|_______________________________|


SEE ALSO

     cfgetispeed(3C), tcgetattr(3C), attributes(5), termio(7I)


Man(1) output converted with man2html