io_getevents (2)
NAME
io_getevents - read asynchronous I/O events from the completion queueSYNOPSIS
#include <linux/aio_abi.h> /* Defines needed types */ #include <linux/time.h> /* Defines 'struct timespec' */
int io_getevents(aio_context_t ctx_id, long min_nr, long nr, struct io_event *events, struct timespec *timeout);Note: There is no glibc wrapper for this system call; see NOTES.
DESCRIPTION
The io_getevents() system call attempts to read at least min_nr events and up to nr events from the completion queue of the AIO context specified by ctx_id. The timeout argument specifies the amount of time to wait for events, and is specified as a relative timeout in a structure of the following form:struct timespec { time_t tv_sec; /* seconds */ long tv_nsec; /* nanoseconds [0 .. 999999999] */ };
The specified time will be rounded up to the system clock granularity and is guaranteed not to expire early. Specifying timeout as NULL means block indefinitely until at least min_nr events have been obtained.
RETURN VALUE
On success, io_getevents() returns the number of events read. This may be 0, or a value less than min_nr, if the timeout expired. It may also be a nonzero value less than min_nr, if the call was interrupted by a signal handler. For the failure return, see NOTES.ERRORS
- EFAULT
- Either events or timeout is an invalid pointer.
- EINTR
- Interrupted by a signal handler; see signal(7).
- EINVAL
- ctx_id is invalid. min_nr is out of range or nr is out of range.
- ENOSYS
- io_getevents() is not implemented on this architecture.