Provided by: freebsd-manpages_9.2+1-1_all bug

NAME

       lio_listio — list directed I/O (REALTIME)

LIBRARY

       Standard C Library (libc, -lc)

SYNOPSIS

       #include <aio.h>

       int
       lio_listio(int mode, struct aiocb * const list[], int nent, struct sigevent *sig);

DESCRIPTION

       The  lio_listio()  function  initiates  a  list  of  I/O  requests with a single function call.  The list
       argument is an array of pointers to aiocb structures describing each  operation  to  perform,  with  nent
       elements.  NULL elements are ignored.

       The aio_lio_opcode field of each aiocb specifies the operation to be performed.  The following operations
       are supported:

       LIO_READ   Read data as if by a call to aio_read(2).

       LIO_NOP    No operation.

       LIO_WRITE  Write data as if by a call to aio_write(2).

       If  the  mode  argument is LIO_WAIT, lio_listio() does not return until all the requested operations have
       been completed.  If mode is LIO_NOWAIT,  the  requests  are  processed  asynchronously,  and  the  signal
       specified  by sig is sent when all operations have completed.  If sig is NULL, the calling process is not
       notified of I/O completion.

       The order in which the requests are carried out is not specified; in particular, there  is  no  guarantee
       that they will be executed in the order 0, 1, ..., nent-1.

RETURN VALUES

       If  mode  is  LIO_WAIT,  the  lio_listio()  function  returns 0 if the operations completed successfully,
       otherwise -1.

       If mode is LIO_NOWAIT, the lio_listio() function returns 0 if the  operations  are  successfully  queued,
       otherwise -1.

ERRORS

       The lio_listio() function will fail if:

       [EAGAIN]           There are not enough resources to enqueue the requests.

       [EAGAIN]           The request would cause the system-wide limit AIO_MAX to be exceeded.

       [EINVAL]           The  mode  argument  is  neither  LIO_WAIT  nor  LIO_NOWAIT,  or  nent is greater than
                          AIO_LISTIO_MAX.

       [EINTR]            A signal interrupted the system call before it could be completed.

       [EIO]              One or more requests failed.

       In addition, the lio_listio() function may fail for  any  of  the  reasons  listed  for  aio_read(2)  and
       aio_write(2).

       If  lio_listio() succeeds, or fails with an error code of EAGAIN, EINTR, or EIO, some of the requests may
       have been initiated.  The caller should check the error status of each aiocb  structure  individually  by
       calling aio_error(2).

SEE ALSO

       aio_error(2), aio_read(2), aio_write(2), read(2), write(2), siginfo(3), aio(4)

STANDARDS

       The lio_listio() function is expected to conform to IEEE Std 1003.1-2001 (“POSIX.1”).

Debian                                          January 12, 2003                                   LIO_LISTIO(2)