# ioctl(2)

## NAME

         ioctl - control device

## SYNOPSIS

         #include <sys/types.h>
         #include <sys/ioctl.h>

         int ioctl(int d, int request, void *argp)             (Minix)
         int ioctl(int d, ioreq_t request, void *argp)         (Minix-vmd)

## DESCRIPTION

         Ioctl  performs  a  variety  of  functions  on  open   descriptors.    In
         particular,  many  operating  characteristics  of character special files
         (e.g. terminals) may be controlled with ioctl requests.  The writeups  of
         various devices in section 4 discuss how ioctl applies to them.

         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 specifying an ioctl request are located in the
         file <sys/ioctl.h>.

## RETURN VALUE

         If an error has occurred, a value of -1 is returned and errno is  set  to
         indicate the error.

## ERRORS

         Ioctl will fail if one or more of the following are true:

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

## SEE ALSO

         execve(2), fcntl(2), mt(4), tty(4), intro(4).