LIO_LISTIO(3) | Library Functions Manual | LIO_LISTIO(3) |
lio_listio
—
#include <aio.h>
int
lio_listio
(int mode,
struct aiocb * const list[], int
nent, struct sigevent *sig);
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
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.
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.
lio_listio
() function will fail if:
EAGAIN
]AIO_MAX
to be
exceeded.EINTR
]EINVAL
]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
aiocb structure individually by calling
aio_error(3).
lio_listio
() function is expected to conform to
IEEE Std 1003.1-2001 (“POSIX.1”).
August 12, 2011 | NetBSD 9.2 |