TIOCPKT, TIOCGPKT, TIOCSPTLCK, TIOCGPTLCK, TIOCGPTPEER -
pseudoterminal ioctls
Standard C library (libc, -lc)
#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);
- 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.)
On success, 0 is returned. On error, -1 is returned, and
errno is set to indicate the error.
- 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.