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 parame-
     ters  of  special  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.

     An ioctl request has encoded in it whether the  argument  is
     an  in parameter or out parameter, and the size of the argu-
     ment argp in bytes.  Macros and defines used  in  specifying
     an ioctl request are located in the file <sys/ioctl.h>.


     On success, zero is returned.  On error, -1 is returned, and
     errno is set appropriately.


     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.


     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),