aio_error man page on SunOS

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

aio_error(3RT)		  Realtime Library Functions		aio_error(3RT)

NAME
       aio_error - retrieve errors status for an asynchronous I/O operation

SYNOPSIS
       cc [ flag... ] file... -lrt [ library... ]
       #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 will fail if:

       ENOSYS	       The aio_error() function is not supported by  the  sys‐
		       tem.

       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	     │Standard			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │MT-Level		     │Async-Signal-Safe		   │
       └─────────────────────────────┴─────────────────────────────┘

SEE ALSO
       _exit(2), close(2), fork(2), lseek(2), read(2), write(2), aio.h(3HEAD),
       aio_cancel(3RT),	  aio_fsync(3RT),   aio_read(3RT),    aio_return(3RT),
       aio_write(3RT),	  lio_listio(3RT),   signal.h(3HEAD),	attributes(5),
       lf64(5), standards(5)

NOTES
       Solaris 2.6 was the first release to support the Asynchronous Input and
       Output  option. Prior to this release, this function always returned −1
       and set errno to ENOSYS.

SunOS 5.10			  28 Jun 2002			aio_error(3RT)
[top]

List of man pages available for SunOS

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