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

FreeBSD Manual Pages


home | help
ioctl(2)			 System	Calls			      ioctl(2)

       ioctl - control device

       #include	<unistd.h>
       #include	<stropts.h>

       int ioctl(int fildes, int request, /* arg */ ...);

       The ioctl() function performs a variety of control functions on devices
       and STREAMS. For	non-STREAMS files, the	functions  performed  by  this
       call are	 device-specific control functions.
	The  request argument and an optional third argument with varying type
       are passed to the file designated by fildes and are interpreted by  the
       device driver.

       For  STREAMS  files,  specific  functions  are performed	by the ioctl()
       function	as described in	streamio(7I).

       The fildes argument is an open file descriptor that refers to a device.
       The  request  argument selects the control function to be performed and
       depends on the device being addressed.  The arg argument	 represents  a
       third  argument	that has additional information	that is	needed by this
       specific	device to perform the requested	function.  The	data  type  of
       arg  depends  upon  the particular control request, but it is either an
       int or a	pointer	to a device-specific data structure.

       In addition to device-specific and STREAMS functions, generic functions
       are  provided  by more than one device driver (for example, the general
       terminal	interface.)  See termio(7I)).

       Upon successful completion, the value returned depends upon the	device
       control function, but must be a non-negative integer.  Otherwise, -1 is
       returned	and errno is set to indicate the error.

       The ioctl() function will fail for any type of file if:

       EBADF The fildes	argument is not	a valid	open file descriptor.

       EINTR A signal was caught during	the execution of the ioctl() function.

	     The STREAM	or multiplexer referenced by  fildes  is  linked  (di-
	     rectly or indirectly) downstream from a multiplexer.

       The ioctl() function will also fail if the device driver	detects	an er-
       ror.  In	this case, the error is	passed through ioctl() without	change
       to  the caller. A particular driver might not have all of the following
       error cases. Under the following	conditions, requests to	device drivers
       may fail	and set	errno to indicate the error

	     The request argument requires a data transfer to or from a	buffer
	     pointed to	by arg,	but arg	points to an illegal address.

	     The request or arg	argument is not	valid for this device.

       EIO   Some physical I/O error has occurred.

	     The fildes	argument is on a remote	machine	and the	link  to  that
	     machine is	no longer active.

	     The  fildes argument is not associated with a STREAMS device that
	     accepts control functions.

       ENXIO The request and arg arguments are valid for this  device  driver,
	     but the service requested can not be performed on this particular

	     The fildes	argument refers	to a valid  STREAMS  device,  but  the
	     corresponding  device  driver  does not support the ioctl() func-

       STREAMS errors are described in streamio(7I).

       streamio(7I), termio(7I)

SunOS 5.9			  15 Feb 1996			      ioctl(2)


Want to link to this manual page? Use this URL:

home | help