ioctl(2)
- NetBSD Manual Pages
IOCTL(2) NetBSD System Calls Manual IOCTL(2)
NAME
ioctl - control device
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <sys/ioctl.h>
int
ioctl(int d, unsigned long request, void *argp);
DESCRIPTION
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.
An ioctl request has encoded in it whether the argument is an ``in''
parameter 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>.
GENERIC IOCTLS
Some ioctls are applicable to any file descriptor. These include:
FIOCLEX
Set close-on-exec flag. The file will be closed when exec(3) is
invoked.
FIONCLEX
Clear close-on-exec flag. The file will remain open across
exec(3).
Some generic ioctls are not implemented for all types of file descrip-
tors. These include:
FIONREAD int
Get the number of bytes that are immediately available for read-
ing.
FIONBIO int
Set non-blocking I/O mode if the argument is non-zero. In non-
blocking mode, read(2) or write(2) calls return -1 and set errno
to EAGAIN immediately when no data is available.
FIOASYNC int
Set asynchronous I/O mode if the argument is non-zero. In asyn-
chronous mode, the process or process group specified by
FIOSETOWN will start receiving SIGIO signals when data is avail-
able. The SIGIO signal will be delivered when data is available
on the file descriptor.
FIOSETOWN, FIOGETOWN int
Set/get the process or the process group (if negative) that
should receive SIGIO signals when data is available.
RETURN VALUES
If an error has occurred, a value of -1 is returned and errno is set to
indicate the error.
ERRORS
ioctl() will fail if:
[EBADF] d is not a valid descriptor.
[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.
[EFAULT] argp points outside the process's allocated address
space.
SEE ALSO
mt(1), execve(2), fcntl(2), intro(4), tty(4)
HISTORY
An ioctl() function call appeared in Version 7 AT&T UNIX.
NetBSD 2.0 August 11, 2002 NetBSD 2.0
Powered by man-cgi (2024-03-20).
Maintained for NetBSD
by Kimmo Suominen.
Based on man-cgi by Panagiotis Christias.