NAME

     ioctl - control device


SYNOPSIS

     #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.]


DESCRIPTION

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


RETURN VALUE

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


ERRORS

     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.


CONFORMING TO

     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.


SEE ALSO

     execve(2), fcntl(2), mt(4),