| IOCTL(2) | System Calls Manual | IOCTL(2) | 
ioctl —
#include <sys/ioctl.h>
int
  
  ioctl(int
    d, unsigned long
    request, ...);
ioctl() function manipulates the underlying device
  parameters 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”,
    “out”, or “inout” parameter, and the size of the
    first variadic argument in bytes. Note that there can be only one variadic
    argument but cannot be represented as a void *
    argument in the prototype because this would require a cast to pass integral
    types without warnings. Macros and defines used in specifying an
    ioctl() request are located in
    the header
  <sys/ioctl.h>.
FIOCLEXfcntl()
      F_SETFD FD_CLOEXEC and the
      fcntl() form should be preferred).FIONCLEXfcntl() F_SETFD
      0 and the fcntl() form
      should be preferred).Some generic ioctls are not implemented for all types of file descriptors. These include:
FIONREAD
    intFIONWRITE
    intFIONSPACE
    intFIONBIO
    int-1 and set errno to
      EAGAIN immediately when no data is available (This
      is equivalent to fcntl()
      F_SETFL O_NONBLOCK and the
      fcntl() form should be preferred).FIOASYNC
    intfcntl() F_SETFL
      O_ASYNC and the fcntl()
      form should be preferred). In asynchronous mode, the process or process
      group specified by FIOSETOWN will start receiving
      SIGIO signals when data is available. The
      SIGIO signal will be delivered when data is
      available on the file descriptor.FIOSETOWN,
    FIOGETOWN intSIGIO signals when data is available (This is
      equivalent to fcntl()
      F_SETOWN pid_t and the
      fcntl form should be preferred).ioctl() will fail if:
EBADF]EFAULT]EINVAL]ENOTTY]ioctl() function call appeared in
  Version 7 AT&T UNIX.
| December 19, 2010 | NetBSD 9.4 |