ioctl - control device


       #include <sys/ioctl.h>

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

       [The  "third"  argument  is  traditionally char *argp, and
       will be so named for this discussion.]


       The  ioctl  function  manipulates  the  underlying  device
       parameters  of special files.  In particular, many operat­
       ing characteristics of character special files (e.g.  ter­
       minals)  may be controlled with ioctl requests.  The argu­
       ment d must be an open file descriptor.

       An ioctl request has encoded in it whether the argument is
       an  in  parameter  or  out  parameter, and the size of the
       argument argp in bytes.  Macros and defines used in speci­
       fying   an   ioctl   request   are  located  in  the  file


       On success, zero is returned.  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

       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), mt(4), sd(4), tty(4)