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

  man pages->HP-UX 11i man pages -> ioctl (5)              
Title
Content
Arch
Section
 

Contents


 ioctl(5)                                                           ioctl(5)




 NAME    [Toc]    [Back]
      ioctl - generic device control commands

 SYNOPSIS    [Toc]    [Back]
           #include <sys/ioctl.h>
           ioctl(fildes, request, arg)
           int fildes, request;

 DESCRIPTION    [Toc]    [Back]
      The ioctl(2) system call provides for control over open devices.  This
      include file describes requests and arguments used in ioctl(2) which
      are of a generic nature.  For details about how individual requests
      will affect any particular device, see the corresponding device manual
      entry in Section (7).  If a device does not support an ioctl request
      it returns [EINVAL].

      FIONREAD          Returns in the long integer whose address is arg the
                        number of characters immediately readable from the
                        device file.

      FIOSSAIOSTAT      For those character device files which support this
                        command, if the integer whose address is arg is
                        non-zero, system asynchronous I/O is enabled; that
                        is, enable SIGIO to be sent to the process currently
                        designated with FIOSSAIOOWN (see below) whenever
                        device-file-dependent events occur.  If no process
                        has been designated with FIOSSAIOOWN, then enable
                        SIGIO to be sent to the first process to open the
                        device file.

                        If the designated process has exited, the SIGIO
                        signal is not sent to any process.

                        If the integer whose address is arg is 0, system
                        asynchronous I/O is disabled.

      FIOGSAIOSTAT      For those character device files which support this
                        command, the integer whose address is arg is set to
                        1, if system asynchronous I/O is enabled.
                        Otherwise, the integer whose address is arg is set
                        to 0.

      FIOSSAIOOWN       For those character device files which support this
                        command, set process ID to receive the SIGIO signals
                        with system asynchronous I/O to the value of the
                        integer whose address is arg.  Users with
                        appropriate privileges can designate that any
                        process receive the SIGIO signals.  If the request
                        is not made by the super-user, only the calling
                        process is allowed to designate that itself or
                        another process whose real or saved effective user



 Hewlett-Packard Company            - 1 -   HP-UX 11i Version 2: August 2003






 ioctl(5)                                                           ioctl(5)




                        ID matches its real or effective user ID, or a
                        process which is a descendant of the calling
                        process, receive the SIGIO signals.  If no process
                        can be found corresponding to that specified by the
                        integer whose address is arg, the call will fail,
                        with errno set to [ESRCH].  If the request is not
                        made by the super-user and the calling process
                        attempts to designate a process other than itself or
                        (1) another process whose real or saved effective
                        user ID matches its real or effective user ID, or
                        (2) a process which is not a descendant of the
                        calling process, the call fails, with errno set to
                        [EPERM].

                        If the designated process subsequently exits, the
                        SIGIO signal will not be sent to any process.

                        The default when opening a device file is that the
                        process performing the open is set to receive the
                        SIGIO signals.

      FIOGSAIOOWN       For those character device files which support this
                        command, the integer whose address is arg is set to
                        the process ID designated to receive SIGIO signals.

      FIOSNBIO          For those character device files which support this
                        command, if the integer whose address is arg is
                        non-zero, non-blocking I/O is enabled; that is,
                        subsequent reads and writes to the device file are
                        handled in a non-blocking manner (see below).  If
                        the integer whose address is arg is 0, non-blocking
                        I/O is disabled.

                        For reads, non-blocking I/O prevents all read
                        requests to that device from blocking, whether the
                        requests succeed or fail.  Such read requests
                        complete in one of three ways:

                        +  If there is enough data available to satisfy the
                           entire request, the read completes successfully,
                           having read all of the data, and returns the
                           number of bytes read;

                        +  If there is not enough data available to satisfy
                           the entire request, the read completes
                           successfully, having read as much data as
                           possible, and returns the number of bytes it was
                           able to read;

                        +  If there is no data available, the read fails and
                           errno is set to [EWOULDBLOCK].



 Hewlett-Packard Company            - 2 -   HP-UX 11i Version 2: August 2003






 ioctl(5)                                                           ioctl(5)




                        For writes, non-blocking I/O prevents all write
                        requests to that device file from blocking, whether
                        the requests succeed or fail.  Such a write request
                        completes in one of three ways:

                        +  If there is enough space available in the system
                           to buffer all the data, the write completes
                           successfully, having written out all of the data,
                           and returns the number of bytes written;

                        +  If there is not enough space in the buffer to
                           write out the entire request, the write completes
                           successfully, having written as much data as
                           possible, and returns the number of bytes it was
                           able to write;

                        +  If there is no space in the buffer, the write
                           fails and errno is set to [EWOULDBLOCK].

                        To prohibit non-blocking I/O from interfering with
                        the O_NDELAY flag (see open(2) and fcntl(2)), the
                        functionality of O_NDELAY always supersedes the
                        functionality of non-blocking I/O.  This means that
                        if O_NDELAY is set, the driver performs read
                        requests in accordance with the definition of
                        O_NDELAY.  When O_NDELAY is not set, the definition
                        of non-blocking I/O applies.

                        The default on open of a device file is that nonblocking
 I/O is disabled.

      FIOGNBIO          For those character device files which support this
                        command, the integer whose address is arg is set to
                        1, if non-blocking I/O is enabled.  Otherwise, the
                        integer whose address is arg is set to 0.

 WARNINGS    [Toc]    [Back]
      FIOSSAIOSTAT is similar to 4.2 BSD FIOASYNC, with the addition of
      provisions for security.  FIOGSAIOSTAT is of HP origin, complements
      FIOSSAIOSTAT, and allows saving and restoring system asynchronous I/O
      TTY state for BSD style job control.  FIOSSAIOOWN is similar to 4.2
      BSD FIOSETOWN, with the addition of provisions for security.
      FIOGSAIOOWN is similar to 4.2 BSD FIOGETOWN.  Note also the difference
      that the 4.2 BSD version of this functionality used process groups,
      while the HP-UX version only uses processes.  FIOSNBIO is the same as
      4.2 BSD FIONBIO, except that it does not interfere with the AT&T
      O_NDELAY open and fcntl flag.  FIOGNBIO is of HP origin, complements
      FIOSNBIO, and allows saving and restoring non-blocking I/O TTY state
      for BSD-style job control.





 Hewlett-Packard Company            - 3 -   HP-UX 11i Version 2: August 2003






 ioctl(5)                                                           ioctl(5)




 SEE ALSO    [Toc]    [Back]
      ioctl(2), socket(7), arp(7).

      Section 7 of this manual.


 Hewlett-Packard Company            - 4 -   HP-UX 11i Version 2: August 2003
[ Back ]
      
      
 Similar pages
Name OS Title
ugen FreeBSD USB generic device support
ugen OpenBSD USB generic device support
smb FreeBSD SMB generic I/O device driver
iic FreeBSD I2C generic i/o device driver
lpt FreeBSD generic printer device driver
wsdisplay OpenBSD generic display device support in wscons
devctl FreeBSD device event reporting and device control interface
rpc_intro HP-UX Introduction to DCE RPC daemon and RPC control program commands
sccs Tru64 Administration program for Source Code Control System (SCCS) commands
show_cdscp_confidence HP-UX Displays the current confidence level of clerk calls resulting from CDS control program commands
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service