| IOCTL(2) | System Calls Manual | IOCTL(2) |
ioctl —
#include <sys/ioctl.h>
int
ioctl(int
d, unsigned long
request, ...);
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.
An ioctl() request
has encoded in it whether the argument is an “in”,
“out”, or “inout” parameter, and the size of the
first variadic argument in bytes. Note that there can be only one variadic
argument but cannot be represented as a void *
argument in the prototype because this would require a cast to pass integral
types without warnings. Macros and defines used in specifying an
ioctl() request are located in
the header
<sys/ioctl.h>.
FIOCLEXfcntl()
F_SETFD FD_CLOEXEC and the
fcntl() form should be preferred).FIONCLEXfcntl() F_SETFD
0 and the fcntl() form
should be preferred).Some generic ioctls are not implemented for all types of file descriptors. These include:
FIONREAD
intFIONWRITE
intFIONSPACE
intFIONBIO
int-1 and set errno to
EAGAIN immediately when no data is available (This
is equivalent to fcntl()
F_SETFL O_NONBLOCK and the
fcntl() form should be preferred).FIOASYNC
intfcntl() F_SETFL
O_ASYNC and the fcntl()
form should be preferred). In asynchronous mode, the process or process
group specified by 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 intSIGIO signals when data is available (This is
equivalent to fcntl()
F_SETOWN pid_t and the
fcntl form should be preferred).ioctl() will fail if:
EBADF]EFAULT]EINVAL]ENOTTY]ioctl() function call appeared in
Version 7 AT&T UNIX.
| December 19, 2010 | NetBSD 10.1 |