| IOCTL(2) | System Calls Manual | IOCTL(2) |
ioctl — control
device
#include
<sys/ioctl.h>
int
ioctl(int
d, unsigned long
request, ...);
The
ioctl()
function manipulates the underlying device parameters of special 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 third argument is called arg and contains additional information needed by this device to perform the requested function. arg is either an int or a pointer to a device-specific data structure, depending upon the given request.
An ioctl request has
encoded in it whether the argument is an “in” parameter or
“out” parameter, and the size of the third argument
(arg) in bytes. Macros and defines used in specifying
an ioctl request are located in the file
<sys/ioctl.h>.
Some ioctls are applicable to any file descriptor. These include:
FIOCLEXFIONCLEXSome generic ioctls are not implemented for all types of file descriptors. These include:
FIONREAD
int *FIONBIO
int *EAGAIN immediately
when no data is available.FIOASYNC
int *FIOSETOWN will start receiving
SIGIO signals when data is available. The
SIGIO signal will be delivered when data is
available on the file descriptor.FIOSETOWN,
FIOGETOWN int *SIGIO signals when data is available.If an error has occurred, a value of -1 is returned and errno is set to indicate the error.
ioctl() will fail if:
EBADF]ENOTTY]ENOTTY]EINVAL]EFAULT]cdio(1), chio(1), mt(1), execve(2), fcntl(2), intro(4), tty(4)
An ioctl() function call appeared in
Version 7 AT&T UNIX.
| September 11, 2022 | openbsd |