#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 *eventsstruct timespec *" timeout );
Note: There is no glibc wrapper for this system call; see NOTES.
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, where a NULL timeout waits until at least min_nr events have been seen. Note that timeout is relative.
The asynchronous I/O system calls first appeared in Linux 2.5.
io_getevents() is Linux-specific and should not be used in programs that are intended to be portable.
Note that the libaio wrapper function uses a different type (io_context_t) for the ctx_id argument. Note also that the libaio wrapper does not follow the usual C library conventions for indicating errors: on error it returns a negated error number (the negative of one of the values listed in ERRORS). If the system call is invoked via syscall(2) , then the return value follows the usual conventions for indicating an error: -1, with errno set to a (positive) value that indicates the error.
io_cancel(2) , io_destroy(2) , io_setup(2) , io_submit(2) , aio(7) , time(7)