aio_error man page on OpenIndiana

Man page or keyword search:  
man Server   20441 pages
apropos Keyword Search (all sections)
Output format
OpenIndiana logo
[printable version]

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 unsuccessfully,
       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	opera‐
		 tion 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)
[top]

List of man pages available for OpenIndiana

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net