- online man pages   

FreeBSD man pages : ioctl (2)
IOCTL(2)		  FreeBSD System Calls Manual		      IOCTL(2)


ioctl - control device


Standard C Library (libc, -lc)


#include <sys/ioctl.h> int 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 space.


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