Contained Within
Find More Documentation
Featured Support Resources
| Download this book in PDF
NAME
- aiowait - wait for completion of asynchronous I/O operation
SYNOPSIS
-
cc [ flag . . . ] file . . . -laio [ library . . . ]
-
-
#include <sys/asynch.h>
#include <sys/time.h>
-
aio_result_t * aiowait(conststruct timeval * timeout);
MT-LEVEL
- Unsafe
DESCRIPTION
-
aiowait( ) suspends the calling process until one of its outstanding asynchronous I/O operations completes. This provides a synchronous method of notification.
- If timeout is a non-zero pointer, it specifies a maximum interval to wait for the completion of an asynchronous I/O operation. If timeout is a zero pointer, then aiowait( ) blocks indefinitely. To effect a poll, the timeout parameter should be non-zero, pointing to a zero-valued timeval structure.
- The timeval structure is defined in <sys/time.h> and contains the following members:
-
-
long tv_sec; /* seconds * /
long tv_usec; /* and microseconds * /
RETURN VALUES
- On success, aiowait( ) returns a pointer to the result structure used when the completed asynchronous I/O operation was requested. On failure, it returns -1 and sets errno to indicate the error. aiowait( ) returns 0 if the time limit expires.
ERRORS
-
- EFAULT
-
timeout points to an address outside the address space of the requesting process. See NOTES below.
-
- EINTR
- A signal was delivered before an asynchronous I/O operation completed.
- The time limit expired.
-
- EINVAL
- There are no outstanding asynchronous I/O requests.
SEE ALSO
-
aiocancel(3), aioread(3)
NOTES
-
aiowait( ) is the only way to dequeue an asynchronous notification. It may be used either inside a SIGIO signal handler or in the main program. One SIGIO signal may represent several queued events.
- Passing an illegal address as timeout will result in setting errno to EFAULT only if it is detected by the application process.
|
|