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

FreeBSD Manual Pages

  
 
  

home | help
IOCTL(2)		      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 char-
       acter 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"
       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
	       reading.

       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 de-
	       vice.   For TCP sockets,	these bytes have not yet been acknowl-
	       edged 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  num-
	       ber  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.2		      September	11, 2013		      IOCTL(2)

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+14.0-RELEASE+and+Ports>

home | help