aio_error.2 (2010 09)

a
aio_error(2) aio_error(2)
NAME
aio_error() - return error status of an asynchronous I/O operation
SYNOPSIS
#include <aio.h>
int aio_error(const struct aiocb *aiocbp);
DESCRIPTION
The aio_error() function returns the error status of the asynchronous I/O operation that was ini-
tiated with the aiocb and referenced by
aiocbp. The error status for an asynchronous I/O operation is
the
errno value set by the corresponding
read(), write(),orfsync()
function.
To use this function, link in the realtime library by specifying
-lrt on the compiler or linker command
line.
RETURN VALUE
If the
aiocb is invalid or if no asynchronous I/O operation is enqueued for the
aiocb, aio_error()
returns -1 and errno is set to indicate the error. If the operation has been queued but not completed,
aio_error() returns EINPROGRESS. Otherwise, aio_error() returns the error status of the refer-
enced aiocb. See aio_read (2), read(2), aio_write (2), write (2), aio_fsync (2), fsync (2), and lio_listio (2) for
relevant error values.
ERRORS
If
aio_error() detects one of the following error conditions, errno is set to the indicated value:
[EINVAL] There was no asynchronous I/O operation enqueued for the referenced
aiocb.
EXAMPLES
The following code sequence illustrates using
aio_error() to retrieve the error status of an
aio_read() operation.
#include <fcntl.h>
#include <errno.h>
#include <aio.h>
char buf[4096];
ssize_t nbytes; int retval;
struct aiocb myaiocb;
bzero( &myaiocb, sizeof (struct aiocb));
myaiocb.aio_fildes = open( "/dev/null", O_RDONLY);
myaiocb.aio_offset = 0;
myaiocb.aio_buf = (void *) buf;
myaiocb.aio_nbytes = sizeof (buf);
myaiocb.aio_sigevent.sigev_notify = SIGEV_NONE;
retval = aio_read( &myaiocb );
if (retval) perror("aio_read:");
/* continue processing */
...
/* wait for completion */
while ( (retval = aio_error( &myaiocb) ) == EINPROGRESS) ;
/* free the aiocb */
nbytes = aio_return( &myaiocb);
SEE ALSO
aio_cancel(2), aio_fsync(2), aio_read(2), aio_return(2), aio_suspend(2), aio_write(2), fsync(2), lio_listio(2),
read(2), write(2), aio(5).
STANDARDS CONFORMANCE
aio_error(): POSIX Realtime Extensions, IEEE Std 1003.1b
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (2 pages)