Skip site navigation (1)Skip section navigation (2)

FreeBSD Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
IOCTL(2)		  FreeBSD 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, ...);

DESCRIPTION
     The ioctl() system	call manipulates the underlying	device parameters of
     special files.  In	particular, many operating characteristics of charac-
     ter 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(), 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''
     argument or ``out'' argument, 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 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.

     FIONWRITE int
	     Get the number of bytes in	the descriptor's send queue.  These
	     bytes are data which has been written to the descriptor but which
	     are being held by the kernel for further processing.  The nature
	     of	the required processing	depends	on the underlying device.  For
	     TCP sockets, these	bytes have not yet been	acknowledged by	the
	     other side	of the connection.

     FIONSPACE int
	     Get the free space	in the descriptor's send queue.	 This value is
	     the size of the send queue	minus the number of bytes being	held
	     in	the queue.  Note: while	this value represents the number of
	     bytes that	may be added to	the queue, other resource limitations
	     may cause a write not larger than the send	queue's	space to be
	     blocked.  One such	limitation would be a lack of network buffers
	     for a write to a network connection.

RETURN VALUES
     If	an error has occurred, a value of -1 is	returned and errno is set to
     indicate the error.

ERRORS
     The ioctl() system	call will fail if:

     [EBADF]		The d argument is not a	valid descriptor.

     [ENOTTY]		The d argument is not associated with a	character spe-
			cial device.

     [ENOTTY]		The specified request does not apply to	the kind of
			object that the	descriptor d references.

     [EINVAL]		The request or argp argument is	not valid.

     [EFAULT]		The argp argument points outside the process's allo-
			cated address space.

SEE ALSO
     execve(2),	fcntl(2), intro(4), tty(4)

HISTORY
     The ioctl() function appeared in Version 7	AT&T UNIX.

FreeBSD	9.3			 May 11, 2010			   FreeBSD 9.3

NAME | LIBRARY | SYNOPSIS | DESCRIPTION | GENERIC IOCTLS | RETURN VALUES | ERRORS | SEE ALSO | HISTORY

Want to link to this manual page? Use this URL:
<http://www.freebsd.org/cgi/man.cgi?query=ioctl&sektion=2&manpath=FreeBSD+8.4-RELEASE>

home | help