logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

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

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.)

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.

Library

Standard C library (libc, -lc)

Name

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

Return Value

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

See Also

ioctl(2), ioctl_tty(2) Linux man-pages 6.9.1 2024-06-15 TIOCPKT(2const)

Synopsis

#include<asm/termbits.h> /* Definition of TIOC* constants */ #include<sys/ioctl.h>intioctl(intfd,TIOCPKT,constint*mode);intioctl(intfd,TIOCPKT,int*mode);intioctl(intfd,TIOCSPTLCK,constint*lock);intioctl(intfd,TIOCGPTLCK,int*lock);intioctl(intfd,TIOCGPTPEER,intflags);

See Also