aio_return(3)aio_return(3)NAMEaio_return - Returns the status of an asynchronous I/O operation
(P1003.1b)
SYNOPSIS
#include <aio.h>
ssize_t aio_return (struct aiocb *aiocbp);
LIBRARY
Asynchronous I/O Library (libaio, libaio_raw)
PARAMETERS
A pointer to the address of the aiocb structure.
DESCRIPTION
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 EIN‐
PROGRESS, the asynchronous I/O operation is complete. When the opera‐
tion is complete, a call to the aio_return function shows if the opera‐
tion 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 com‐
pleted asynchronous I/O operation that does not return data through a
call to the aio_return function.
RETURN VALUES
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. If the operation did
not complete, but it terminated normally (because, for example, the
call was purposely interrupted by the aio_cancel function), errno is
set to 0.
ERRORS
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.
SEE ALSO
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_lis‐
tio(3)
Guide to Realtime Programming
aio_return(3)