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

FreeBSD Manual Pages

  
 
  

home | help
IOCTL(2)		    BSD	System Calls Manual		      IOCTL(2)

NAME
     ioctl -- control device

SYNOPSIS
     #include <sys/ioctl.h>

     int
     ioctl(int d, unsigned long	request, ...);

DESCRIPTION
     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" pa-
     rameter 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>.

IMPLEMENTATION NOTES
     In	the non-threaded library ioctl() is implemented	as the ioctl syscall.

     In	the threaded library, the ioctl	syscall	is assembled to
     _thread_sys_ioctl() and ioctl() is	implemented as a function which	locks
     d for read	and write, then	calls _thread_sys_ioctl().  Before returning,
     ioctl() unlocks d.

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

ERRORS
     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.

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

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

4th Berkeley Distribution      December	11, 1993     4th Berkeley Distribution

NAME | SYNOPSIS | DESCRIPTION | IMPLEMENTATION NOTES | RETURN VALUES | ERRORS | SEE ALSO | HISTORY

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

home | help