*nix Documentation Project
Title
Content
Arch
Section
 aio_error(2) aio_error(2)
 NAME  [Toc]  
 aio_error() - return error status of an asynchronous I/O operation
 SYNOPSIS  [Toc]  
 #include <aio.h>
 int aio_error(const struct aiocb *aiocbp);
 DESCRIPTION  [Toc]  
 The 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 VALUE  [Toc]  
 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 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.
 ERRORS  [Toc]  
 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  [Toc]  
 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 );
 Hewlett-Packard Company - 1 - HP-UX 11i Version 2: August 2003
 aio_error(2) aio_error(2)
 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  [Toc]  
 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  [Toc]  
 aio_error(): POSIX Realtime Extensions, IEEE Std 1003.1b
 Hewlett-Packard Company - 2 - HP-UX 11i Version 2: August 2003

AltStyle によって変換されたページ (->オリジナル) /


Similar pages
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service