- online man pages   

Linux man pages : ioctl (2)
IOCTL(2)		   Linux Programmer's Manual		      IOCTL(2)


ioctl - control device


#include <sys/ioctl.h> 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)