# TIOCPKT

## NAME



           TIOCPKT, TIOCGPKT, TIOCSPTLCK, TIOCGPTLCK, TIOCGPTPEER -
           pseudoterminal ioctls
    


## LIBRARY



           Standard C library (_libc_ , _-lc_)
    


## SYNOPSIS



           **#include <asm/termbits.h>  **/* Definition of **TIOC*** constants */
           **#include <sys/ioctl.h>**
    
           **int ioctl(int** _fd_**, TIOCPKT, const int ***_mode_**);**
           **int ioctl(int** _fd_**, TIOCPKT, int ***_mode_**);**
    
           **int ioctl(int** _fd_**, TIOCSPTLCK, const int ***_lock_**);**
           **int ioctl(int** _fd_**, TIOCGPTLCK, int ***_lock_**);**
    
           **int ioctl(int** _fd_**, TIOCGPTPEER, int** _flags_**);**
    


## DESCRIPTION



           **TIOCPKT**
                  Enable (when *_mode_ is nonzero) or disable packet mode.  Can
                  be applied to the master side of a pseudoterminal only (and
                  will return **ENOTTY** otherwise).  In packet mode, each
                  subsequent read(2) will return a packet that either
                  contains a single nonzero control byte, or has a single
                  byte containing zero ('\0') followed by data written on the
                  slave side of the pseudoterminal.  If the first byte is not
                  **TIOCPKT_DATA**(0), it is an OR of one or more of the
                  following bits:
    
                  **TIOCPKT_FLUSHREAD** The read queue for the
                                       terminal is flushed.
                  **TIOCPKT_FLUSHWRITE** The write queue for the
                                       terminal is flushed.
                  **TIOCPKT_STOP** Output to the terminal
                                       is stopped.
                  **TIOCPKT_START** Output to the terminal
                                       is restarted.
                  **TIOCPKT_DOSTOP** The start and stop
                                       characters are **^S** /**^Q**.
                  **TIOCPKT_NOSTOP** The start and stop
                                       characters are not
                                       **^S** /**^Q**.
    
                  While packet mode is in use, the presence of control status
                  information to be read from the master side may be detected
                  by  a select(2) for exceptional conditions or a poll(2) for
                  the **POLLPRI** event.
    
                  This mode is used by **rlogin**(1) and **rlogind**(8) to  implement
                  a   remote-echoed,  locally  **^S** /**^Q** flow-controlled  remote
                  login.
    
           **TIOCGPKT**
                  Return the current packet mode setting in the integer
                  pointed to by _mode_.
    
           **TIOCSPTLCK**
                  Set (if _*lock_ is nonzero) or remove (if _*lock_ is zero) the
                  lock on the pseudoterminal slave device.  (See also
                  unlockpt(3).)
    
           **TIOCGPTLCK**
                  Place the current lock state of the pseudoterminal slave
                  device in the location pointed to by _lock_.
    
           **TIOCGPTPEER**
                  Given a file descriptor in _fd_ that refers to a
                  pseudoterminal master, open (with the given open(2)-style
                  _flags_) and return a new file descriptor that refers to the
                  peer pseudoterminal slave device.  This operation can be
                  performed regardless of whether the pathname of the slave
                  device is accessible through the calling process's mount
                  namespace.
    
                  Security-conscious programs interacting with namespaces may
                  wish to use this operation rather than open(2) with the
                  pathname returned by ptsname(3), and similar library
                  functions that have insecure APIs.  (For example, confusion
                  can occur in some cases using ptsname(3) with a pathname
                  where a devpts filesystem has been mounted in a different
                  mount namespace.)
    


## RETURN VALUE



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


## ERRORS



           **ENOTTY**
    


* * *