int
lio_listio(
int mode
struct aiocb * const list[]
int nent
struct sigevent *sig
)
)
function initiates a list of I/O requests with a single function call.
The
list
argument is an array of pointers to
structures describing each operation to perform,
with
nent
elements.
NULL
elements are ignored.
The aio_lio_opcode field of each specifies the operation to be performed. The following operations are supported:
LIO_READ
LIO_NOP
LIO_WRITE
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, and there is no guarantee that they will be executed sequentially.
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.
)
function will fail if:
EAGAIN
]
EAGAIN
]
AIO_MAX
to be exceeded.
EINTR
]
EINVAL
]
mode
argument is neither
LIO_WAIT
nor
LIO_NOWAIT
,
or
nent
is greater than
AIO_LISTIO_MAX
.
EIO
]
In addition, the
lio_listio()
function may fail for any of the reasons listed for
aio_read(3)
and
aio_write(3).
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
structure individually by calling
aio_error(3).
)
function is expected to conform to
IEEE Std 1003.1-2001 (``POSIX.1'') .