aio_return - Returns the status of an asynchronous I/O
operation (P1003.1b)
#include <aio.h>
ssize_t aio_return (struct aiocb *aiocbp);
Asynchronous I/O Library (libaio, libaio_raw)
A pointer to the address of the aiocb structure.
The aio_return function returns the number of bytes read
or written by the corresponding asynchronous I/O function.
The return status for an asynchronous I/O operation is the
value that would be returned by the corresponding synchronous
read, write, or fsync function call. The
aio_error function returns the error status for an asynchronous
I/O operation.
The aio_error function returns the error status associated
with the specified aiocbp. If the aio_error function
returns anything but EINPROGRESS, the asynchronous I/O
operation is complete. When the operation is complete, a
call to the aio_return function shows if the operation is
successful.
When you call the aio_return function, the aiocb structure
is marked for reuse, thus destroying your ability to reuse
the structure for that particular asynchronous I/O
request. To avoid losing data, use the aio_error function
to poll for completion before you call the aio_return
function. Then use the aio_return function to retrieve the
number of bytes read or written during the asynchronous
I/O operation.
If you do not call the aio_return function, the structure
is not marked for reuse. In this situation, the number of
asynchronous I/O operations available for use in your
application is reduced by one for every completed asynchronous
I/O operation that does not return data through a
call to the aio_return function.
If the asynchronous I/O operation has completed, then the
return value is any of the return values normally associated
with a synchronous read, write, or fsync function
(the number of bytes transferred or -1). If the asynchronous
I/O operation has not yet completed, the results
of aio_return are undefined. On an unsuccessful call, the
value of -1 is returned and errno is set to indicate the
error.
The aio_return function fails under the following conditions:
The aiocbp argument does not refer to an asynchronous
operation whose return status has not yet been
retrieved.
Functions: close(2), exec(2), _exit(2), fork(2), lseek(2),
read(2), write(2), aio_cancel(3), aio_error(3),
aio_group_completion_np(3), aio_read(3),
aio_results_np(3), aio_suspend(3), aio_write(3), lio_listio(3)
Guide to Realtime Programming
aio_return(3)
[ Back ] |