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:
FIOCLEX
FIONCLEX
Some 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.
June 27, 2014 | OpenBSD-6.4 |