|
|
HP-UX Reference > Aaio_error(2)HP-UX 11i Version 2: December 2007 Update |
|
NAMEaio_error() — return error status of an asynchronous I/O operation DESCRIPTIONThe aio_error() function returns the error status of the asynchronous I/O operation that was initiated 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(), or fsync() function. To use this function, link in the realtime library by specifying -lrt on the compiler or linker command line. RETURN VALUEIf 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 referenced 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. ERRORSIf aio_error() detects one of the following error conditions, errno is set to the indicated value:
EXAMPLESThe 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); |
|