FreeBSD man pages : ioctl (2)
IOCTL(2) FreeBSD System Calls Manual IOCTL(2)
ioctl - control device
Standard C Library (libc, -lc)
ioctl(int d, unsigned long request, ...);
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.
The third argument to ioctl is traditionally named char *argp. Most uses
of ioctl in FreeBSD 3.0 however, require the third argument to be a
caddr_t or an int.
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>.
If an error has occurred, a value of -1 is returned and errno is set to
indicate the error.
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
execve(2), fcntl(2), intro(4), tty(4)
An ioctl() function call appeared in Version 7 AT&T UNIX.
FreeBSD 4.8 December 11, 1993 FreeBSD 4.8