lio_listio(2)
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 ele
- ments. NULL
elements are ignored. - The aio_lio_opcode field of each aiocb specifies the opera
- tion 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 re
- turn until all
the requested operations have been completed. If mode is - LIO_NOWAIT, the
requests are processed asynchronously, and the signal speci - fied 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 spec
- ified; 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 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 be
- fore 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 EA
- GAIN, 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
STANDARDS
- The lio_listio() function is expected to conform to .
- BSD January 12, 2003