Chapter Contents

Previous

Next
tcgetattr

tcgetattr



Get Terminal Attributes

Portability: POSIX.1 conforming


SYNOPSIS
DESCRIPTION
RETURN VALUE
EXAMPLE
RELATED FUNCTIONS


SYNOPSIS

#include <termios.h>

int tcgetattr(int fileDescriptor, struct termios *terminal);


DESCRIPTION

tcgetattr stores the attributes of a terminal device in a termios structure. The fields of termios (declared in <termios.h> ) are flags that identify terminal modes and control characters. The following arguments are passed to tcgetattr :

fileDescriptor
is a file discriptor that refers to a terminal device.

terminal
is the address of a termios structure. The tcgetattr function fills this structure with the attributes of the terminal referred to by fileDescriptor .

You can call tcgetattr from either a foreground or background process. However, if called from a background process, terminal attributes may be changed by a subsequent call from a foreground process.


RETURN VALUE

tcgetattr returns a 0 if successful and a -1 if unsuccessful.


EXAMPLE

The following example illustrates the use of tcgetattr to determine the terminal attributes for stdout :

#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 and if terminal is in        */
      /* canonical mode.                                        */
   else {
      if (tcgetattr(ttyDevice, &termAttributes) != 0)
         perror("tcgetattr error");
      else {
         if (termAttributes.c_iflag & IXON)
             printf("Terminal start and stop is enabled.n");
         if (termAttributes.c_lflag & ICANON)
             printf("Terminal is in canonical mode.n");
      }
   }
   return(EXIT_SUCCESS);
}


RELATED FUNCTIONS

cfgetispeed , cfgetospeed , tcsetattr


Chapter Contents

Previous

Next

Top of Page

Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.