NAME |LIBRARY |SYNOPSIS |DESCRIPTION |RETURN VALUE |ERRORS |HISTORY |SEE ALSO |COLOPHON | |
TIOCPKT(2const)TIOCPKT(2const)TIOCPKT, TIOCGPKT, TIOCSPTLCK, TIOCGPTLCK, TIOCGPTPEER - pseudoterminal ioctls
Standard C library (libc,-lc)
#include <asm/termbits.h>/* Definition ofTIOC*constants */#include <sys/ioctl.h>int ioctl(intfd, TIOCPKT, const int *mode);int ioctl(intfd, TIOCPKT, int *mode);int ioctl(intfd, TIOCSPTLCK, const int *lock);int ioctl(intfd, TIOCGPTLCK, int *lock);int ioctl(intfd, TIOCGPTPEER, intflags);
TIOCPKT Enable (when *mode is nonzero) or disable packet mode. Can be applied to the master side of a pseudoterminal only (and will returnENOTTYotherwise). In packet mode, each subsequentread(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 notTIOCPKT_DATA(0), it is an OR of one or more of the following bits:TIOCPKT_FLUSHREADThe read queue for the terminal is flushed.TIOCPKT_FLUSHWRITEThe write queue for the terminal is flushed.TIOCPKT_STOPOutput to the terminal is stopped.TIOCPKT_STARTOutput to the terminal is restarted.TIOCPKT_DOSTOPThe start and stop characters are^S/^Q.TIOCPKT_NOSTOPThe 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 aselect(2) for exceptional conditions or apoll(2) for thePOLLPRIevent. This mode is used byrlogin(1) andrlogind(8) to implement a remote-echoed, locally^S/^Qflow-controlled remote login.TIOCGPKT Return the current packet mode setting in the integer pointed to bymode.TIOCSPTLCK Set (if*lock is nonzero) or remove (if*lock is zero) the lock on the pseudoterminal slave device. (See alsounlockpt(3).)TIOCGPTLCK Place the current lock state of the pseudoterminal slave device in the location pointed to bylock.TIOCGPTPEER Given a file descriptor infd that refers to a pseudoterminal master, open (with the givenopen(2)-styleflags) 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 thanopen(2) with the pathname returned byptsname(3), and similar library functions that have insecure APIs. (For example, confusion can occur in some cases usingptsname(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, anderrno is set to indicate the error.
ENOTTY
TIOCGPKT Linux 3.8.TIOCGPTLCK Linux 3.8.TIOCGPTPEER Linux 4.13. The BSD ioctlsTIOCSTOP,TIOCSTART,TIOCUCNTL, andTIOCREMOTEhave not been implemented under Linux.
ioctl(2),ioctl_tty(2)
This page is part of theman-pages (Linux kernel and C library user-space interface documentation) project. Information about the project can be found at ⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report for this manual page, see ⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩. This page was obtained from the tarball man-pages-6.15.tar.gz fetched from ⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on 2025-08-11. If you discover any rendering problems in this HTML version of the page, or you believe there is a better or more up- to-date source for the page, or you have corrections or improvements to the information in this COLOPHON (which isnot part of the original manual page), send a mail to man-pages@man7.orgLinux man-pages 6.15 2025-05-17TIOCPKT(2const)Pages that refer to this page:ioctl_tty(2)
HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface. For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere. Hosting byjambit GmbH. | ![]() |