tcsetattr()
QNX SDP8.0C Library ReferenceAPIDeveloper
Change the terminal control settings for a device
Synopsis:
#include <termios.h>
int tcsetattr( int filedes,
               int optional_actions,
               const struct termios *termios_p );
Arguments:
- filedes
 - The file descriptor associated with the terminal device.
 - optional_actions
 - Specifies when to change the terminal control settings. Set this argument to one of the following parameters:
- TCSANOW
 - The change is made immediately.
 - TCSADRAIN
 - No change is made until all currently written data has been transmitted.
 - TCSAFLUSH
 - No change is made until all currently written data has been transmitted, at which point any received but unread data is also discarded.
 
 - termios_p
 - A pointer to a termios structure that describes the attributes that you want to set for the terminal device.
 
Library:
libc
Use the -l c option to qcc to link against this library. This library is usually included automatically.
Description:
The tcsetattr() function sets the current terminal control settings for the opened device indicated by filedes to the values stored in the structure pointed to by termios_p.
The operation of tcsetattr() depends on the values in optional_actions:
The termios control structure is defined in <termios.h>. For more information, see tcgetattr().
Returns:
- 0
 - Success.
 - -1
 - An error occurred; errno is set.
 
Errors:
- EBADF
 - The argument filedes is invalid.
 - EINVAL
 - The argument optional_actions is invalid, or one of the members of termios_p is invalid.
 - ENOSYS
 - The resource manager associated with filedes doesn't support this call.
 - ENOTTY
 - The argument filedes doesn't refer to a terminal device.
 
Examples:
#include <stdlib.h>
#include <termios.h>
int raw( int fd )
  {
    struct termios termios_p;
    if( tcgetattr( fd, &termios_p ) )
      return( -1 );
    termios_p.c_cc[VMIN]  =  1;
    termios_p.c_cc[VTIME] =  0;
    termios_p.c_lflag &= ~( ECHO|ICANON|ISIG|
              ECHOE|ECHOK|ECHONL );
    termios_p.c_oflag &= ~( OPOST );
    return( tcsetattr( fd, TCSADRAIN, &termios_p ) );
  }
int unraw( int fd )
  {
    struct termios termios_p;
    if( tcgetattr( fd, &termios_p ) )
      return( -1 );
    termios_p.c_lflag |= ( ECHO|ICANON|ISIG|
             ECHOE|ECHOK|ECHONL );
    termios_p.c_oflag |= ( OPOST );
    return( tcsetattr( fd, TCSADRAIN, &termios_p ) );
  }
int main( void )
  {
    raw( 0 );
    /*
     * Stdin is now "raw"
     */
    unraw ( 0 );
    return EXIT_SUCCESS;
  }
Classification:
| Safety: | |
|---|---|
| Cancellation point | No | 
| Signal handler | Yes | 
| Thread | Yes | 
Page updated: 
