# TIOCMSET

## NAME



           TIOCMGET, TIOCMSET, TIOCMBIC, TIOCMBIS, TIOCMIWAIT, TIOCGICOUNT -
           modem control
    


## LIBRARY



           Standard C library (_libc_ , _-lc_)
    


## SYNOPSIS



           **#include <asm/termbits.h>  **/* Definition of **TIOC*** constants */
           **#include <sys/ioctl.h>**
    
           **int ioctl(int** _fd_**, TIOCMGET, int ***_argp_**);**
           **int ioctl(int** _fd_**, TIOCMSET, const int ***_argp_**);**
           **int ioctl(int** _fd_**, TIOCMBIC, const int ***_argp_**);**
           **int ioctl(int** _fd_**, TIOCMBIS, const int ***_argp_**);**
           **int ioctl(int** _fd_**, TIOCMIWAIT, int** _arg_**);**
           **int ioctl(int** _fd_**, TIOCGICOUNT, struct serial_icounter_struct ***_argp_**);**
    
           **#include <linux/serial.h>**
    
           **struct serial_icounter_struct;**
    


## DESCRIPTION



           **TIOCMGET**
                  Get the status of modem bits.
    
           **TIOCMSET**
                  Set the status of modem bits.
    
           **TIOCMBIC**
                  Clear the indicated modem bits.
    
           **TIOCMBIS**
                  Set the indicated modem bits.
    
           The following bits are used by the above ioctls:
    
           **TIOCM_LE** DSR (data set ready/line enable)
           **TIOCM_DTR** DTR (data terminal ready)
           **TIOCM_RTS** RTS (request to send)
           **TIOCM_ST** Secondary TXD (transmit)
           **TIOCM_SR** Secondary RXD (receive)
           **TIOCM_CTS** CTS (clear to send)
           **TIOCM_CAR** DCD (data carrier detect)
           **TIOCM_CD** see TIOCM_CAR
           **TIOCM_RNG** RNG (ring)
           **TIOCM_RI** see TIOCM_RNG
           **TIOCM_DSR** DSR (data set ready)
    
           **TIOCMIWAIT**
                  Wait for any of the 4 modem bits (DCD, RI, DSR, CTS) to
                  change.  The bits of interest are specified as a bit mask
                  in _arg_ , by ORing together any of the bit values, **TIOCM_RNG** ,
                  **TIOCM_DSR** , **TIOCM_CD** , and **TIOCM_CTS**.  The caller should use
                  **TIOCGICOUNT** to see which bit has changed.
    
           **TIOCGICOUNT**
                  Get counts of input serial line interrupts (DCD, RI, DSR,
                  CTS).  The counts are written to the _serial_icounter_struct_
                  structure pointed to by _argp_.
    
                  Note: both 1->0 and 0->1 transitions are counted, except
                  for RI, where only 0->1 transitions are counted.
    


## RETURN VALUE



           On success, 0 is returned.  On error, -1 is returned, and _errno_ is
           set to indicate the error.
    


## EXAMPLES



           Check the condition of DTR on the serial port.
    
           #include <asm/termbits.h>
           #include <fcntl.h>
           #include <stdio.h>
           #include <sys/ioctl.h>
           #include <unistd.h>
    
           int
           main(void)
           {
               int fd, serial;
    
               fd = open("/dev/ttyS0", O_RDONLY);
               ioctl(fd, TIOCMGET, &serial);
               if (serial & TIOCM_DTR)
                   puts("TIOCM_DTR is set");
               else
                   puts("TIOCM_DTR is not set");
               close(fd);
           }
    


* * *