table of contents
other sections
LIO_LISTIO(2) | System Calls Manual | LIO_LISTIO(2) |
NAME¶
lio_listio — list directed I/O (REALTIME)LIBRARY¶
Standard C Library (libc, -lc)SYNOPSIS¶
#include <aio.h> intlio_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).
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 isLIO_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
norLIO_NOWAIT
, or nent is greater thanAIO_LISTIO_MAX
. - [
EINTR
] - A signal interrupted the system call before it could be completed.
- [
EIO
] - One or more requests failed.
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”).January 12, 2003 | Debian |