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>
.
FIOCLEX
fcntl
()
F_SETFD
FD_CLOEXEC
and the
fcntl
() form should be preferred).FIONCLEX
fcntl
() 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
int
FIONWRITE
int
FIONSPACE
int
FIONBIO
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
int
fcntl
() 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 int
SIGIO
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 9.0 |