Provided by: manpages-dev_6.9.1-1_all bug

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

HISTORY

       TIOCGPKT
              Linux 3.8.

       TIOCGPTLCK
              Linux 3.8.

       TIOCGPTPEER
              Linux 4.13.

       The BSD ioctls TIOCSTOP, TIOCSTART, TIOCUCNTL, and TIOCREMOTE have  not  been  implemented
       under Linux.

SEE ALSO

       ioctl(2), ioctl_tty(2)