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

       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.

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