ioctl - control device
int ioctl(int d, int request, ...);
The ioctl function manipulates the underlying device parameters of spe-
cial files. In particular, many operating characteristics of character
special files (e.g. terminals) may be controlled with ioctl requests.
The argument d must be an open file descriptor.
The second argument is a device-dependent request code. The third
argument is an untyped pointer to memory. It's traditionally char
*argp (from the days before void * was valid C), and will be so named
for this discussion.
An ioctl request has encoded in it whether the argument is an in param-
eter or out parameter, and the size of the argument argp in bytes.
Macros and defines used in specifying an ioctl request are located in
the file <sys/ioctl.h>.
Usually, on success zero is returned. A few ioctls use the return
value as an output parameter and return a nonnegative value on success.
On error, -1 is returned, and errno is set appropriately.
EBADF d is not a valid descriptor.
EFAULT argp references an inaccessible memory area.
ENOTTY d is not associated with a character special device.
ENOTTY The specified request does not apply to the kind of object that
the descriptor d references.
EINVAL Request or argp is not valid.
No single standard. Arguments, returns, and semantics of ioctl(2) vary
according to the device driver in question (the call is used as a
catch-all for operations that don't cleanly fit the Unix stream I/O
model). See ioctl_list(2) for a list of many of the known ioctl calls.
The ioctl function call appeared in Version 7 AT&T Unix.
execve(2), fcntl(2), ioctl_list(2), mt(4), sd(4), tty(4)
BSD Man Page 2000-09-21 ioctl(2)