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

FreeBSD Manual Pages

  
 
  

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 fd, 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() re-
     quests.  The argument fd 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" ar-
     gument 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 fd argument	is not a valid descriptor.

     [ENOTTY]		The fd argument	is not associated with a character
			special	device.

     [ENOTTY]		The specified request does not apply to	the kind of
			object that the	descriptor fd 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	13.0		      September	11, 2013		  FreeBSD 13.0

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

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

home | help