*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> ioctl (2)              
Title
Content
Arch
Section
 

IOCTL(2)

Contents


NAME    [Toc]    [Back]

     ioctl - control device

SYNOPSIS    [Toc]    [Back]

     #include <sys/ioctl.h>

     int
     ioctl(int d, unsigned long request, ...);

DESCRIPTION    [Toc]    [Back]

     The 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.  The third
argument is
     called arg and contains  additional  information  needed  by
this device to
     perform  the  requested function.  arg is either an int or a
pointer to a
     device-specific data structure,  depending  upon  the  given
request.

     An  ioctl  request has encoded in it whether the argument is
an ``in'' parameter
 or ``out'' parameter, and the size of the third  argument (arg) in
     bytes.   Macros  and  defines  used  in  specifying an ioctl
request are located
 in the file <sys/ioctl.h>.

GENERIC IOCTLS    [Toc]    [Back]

     Some ioctls are applicable to any  file  descriptor.   These
include:

     FIOCLEX
             Set  close-on-exec  flag.   The  file will be closed
when exec(3) is
             invoked.

     FIONCLEX
             Clear close-on-exec flag.  The file will remain open
across
             exec(3).

     Some  generic  ioctls  are  not implemented for all types of
file descriptors.
  These include:

     FIONREAD int
             Get the number of bytes that are immediately  available for reading.


     FIONBIO int
             Set non-blocking I/O mode if the argument is non-zero.  In nonblocking
 mode, read(2) or write(2) calls  return  -1
and set errno
             to EAGAIN immediately when no data is available.

     FIONASYNC int
             Set asynchronous I/O mode if the argument is non-zero.  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 int
             Set/get  the  process or the process group (if negative) that
             should receive SIGIO signals when data is available.

RETURN VALUES    [Toc]    [Back]

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

ERRORS    [Toc]    [Back]

     ioctl() will fail if:

     [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 arg is not valid.

     [EFAULT]      arg points outside the process's allocated address space.

SEE ALSO    [Toc]    [Back]

      
      
     cdio(1),  chio(1),  mt(1),  execve(2),  fcntl(2),  intro(4),
tty(4)

HISTORY    [Toc]    [Back]

     An ioctl() function call appeared in Version 7 AT&T UNIX.

OpenBSD     3.6                        December     11,      1993
[ Back ]
 Similar pages
Name OS Title
devctl FreeBSD device event reporting and device control interface
scsictl HP-UX control a SCSI device
comcontrol FreeBSD control a special tty device
VOP_IOCTL FreeBSD device specific control
audioctl OpenBSD control audio device
atacontrol FreeBSD ATA device driver control program
ioctl HP-UX generic device control commands
uucplock FreeBSD acquire and release control of a serial device
uu_lockerr OpenBSD acquire and release control of a serial device
uu_unlock OpenBSD acquire and release control of a serial device
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service