ioctl (2)


       ioctl - control device


       #include <sys/ioctl.h>

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


       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 second argument is a  device-dependent  request  code.   The  third
       argument  is  an  untyped  pointer  to memory.  It's traditionally char
       *argp (from the days before void * was valid C), and will be  so  named
       for this discussion.

       An ioctl request has encoded in it whether the argument is an in param-
       eter 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>.


       Usually, on success zero is returned.  A  few  ioctls  use  the  return
       value as an output parameter and return a nonnegative value on success.
       On error, -1 is returned, and errno is set appropriately.


       EBADF  d is not a valid descriptor.

       EFAULT argp references an inaccessible memory area.

       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.


       No single standard.  Arguments, returns, and semantics of ioctl(2) vary
       according to the device driver in question  (the  call  is  used  as  a
       catch-all  for  operations  that  don't cleanly fit the Unix stream I/O
       model). See ioctl_list(2) for a list of many of the known ioctl  calls.
       The ioctl function call appeared in Version 7 AT&T Unix.


       execve(2), fcntl(2), ioctl_list(2), mt(4), sd(4), tty(4)

BSD Man Page                      2000-09-21                          ioctl(2)