Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

aio_error(3c) [opensolaris man page]

aio_error(3C)						   Standard C Library Functions 					     aio_error(3C)

NAME
aio_error - retrieve errors status for 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 associated with the aiocb structure referenced by the aiocbp argument. The error status for an asynchronous I/O operation is the errno value that would be set by the corresponding read(2), write(2), or fsync(3C) operation. If the operation has not yet completed, then the error status will be equal to EINPROGRESS. RETURN VALUES
If the asynchronous I/O operation has completed successfully, then 0 is returned. If the asynchronous operation has completed unsuccess- fully, then the error status, as described for read(2), write(2), and fsync(3C), is returned. If the asynchronous I/O operation has not yet completed, then EINPROGRESS is returned. ERRORS
The aio_error() function may fail if: EINVAL The aiocbp argument does not refer to an asynchronous operation whose return status has not yet been retrieved. USAGE
The aio_error() function has a transitional interface for 64-bit file offsets. See lf64(5). EXAMPLES
Example 1 The following is an example of an error handling routine using the aio_error() function. #include <aio.h> #include <errno.h> #include <signal.h> struct aiocb my_aiocb; struct sigaction my_sigaction; void my_aio_handler(int, siginfo_t *, void *); ... my_sigaction.sa_flags = SA_SIGINFO; my_sigaction.sa_sigaction = my_aio_handler; sigemptyset(&my_sigaction.sa_mask); (void) sigaction(SIGRTMIN, &my_sigaction, NULL); ... my_aiocb.aio_sigevent.sigev_notify = SIGEV_SIGNAL; my_aiocb.aio_sigevent.sigev_signo = SIGRTMIN; my_aiocb.aio_sigevent.sigev_value.sival_ptr = &myaiocb; ... (void) aio_read(&my_aiocb); ... void my_aio_handler(int signo, siginfo_t *siginfo, void *context) { int my_errno; struct aiocb *my_aiocbp; my_aiocbp = siginfo->si_value.sival_ptr; if ((my_errno = aio_error(my_aiocb)) != EINPROGRESS) { int my_status = aio_return(my_aiocb); if (my_status >= 0){ /* start another operation */ ... } else { /* handle I/O error */ ... } } } ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Committed | +-----------------------------+-----------------------------+ |MT-Level |Async-Signal-Safe | +-----------------------------+-----------------------------+ |Standard |See standards(5). | +-----------------------------+-----------------------------+ SEE ALSO
_Exit(2), close(2), fork(2), lseek(2), read(2), write(2), aio.h(3HEAD), aio_cancel(3C), aio_fsync(3C), aio_read(3C), aio_return(3C), aio_write(3C), lio_listio(3C), signal.h(3HEAD), attributes(5), lf64(5), standards(5) SunOS 5.11 5 Feb 2008 aio_error(3C)

Check Out this Related Man Page

AIO_ERROR(3)						     Linux Programmer's Manual						      AIO_ERROR(3)

NAME
aio_error - get error status of asynchronous I/O operation SYNOPSIS
#include <aio.h> int aio_error(const struct aiocb *aiocbp); Link with -lrt. DESCRIPTION
The aio_error() function returns the error status for the asynchronous I/O request with control block pointed to by aiocbp. (See aio(7) for a description of the aiocb structure.) RETURN VALUE
This function returns one of the following: * EINPROGRESS, if the request has not been completed yet. * ECANCELED, if the request was canceled. * 0, if the request completed successfully. * A positive error number, if the asynchronous I/O operation failed. This is the same value that would have been stored in the errno variable in the case of a synchronous read(2), write(2), fsync(2), or fdatasync(2) call. ERRORS
EINVAL aiocbp does not point at a control block for an asynchronous I/O request of which the return status (see aio_return(3)) has not been retrieved yet. ENOSYS aio_error() is not implemented. VERSIONS
The aio_error() function is available since glibc 2.1. ATTRIBUTES
For an explanation of the terms used in this section, see attributes(7). +------------+---------------+---------+ |Interface | Attribute | Value | +------------+---------------+---------+ |aio_error() | Thread safety | MT-Safe | +------------+---------------+---------+ CONFORMING TO
POSIX.1-2001, POSIX.1-2008. EXAMPLE
See aio(7). SEE ALSO
aio_cancel(3), aio_fsync(3), aio_read(3), aio_return(3), aio_suspend(3), aio_write(3), lio_listio(3), aio(7) COLOPHON
This page is part of release 4.15 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at https://www.kernel.org/doc/man-pages/. 2015-03-02 AIO_ERROR(3)
Man Page