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.2 August 11, 2002 NetBSD 2.0.2
Powered by man-cgi (2024-08-26). Maintained for NetBSD by Kimmo Suominen. Based on man-cgi by Panagiotis Christias.