io_getevents - read asynchronous I/O events from the completion queue
#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);
: There is no glibc wrapper for this system call; see NOTES.
() 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
events have been seen. Note that timeout
On success, io_getevents
() returns the number of events read: 0 if no
events are available, or less than min_nr
if the timeout
elapsed. For the failure return, see NOTES.
- Either events or timeout is an invalid pointer.
- ctx_id is invalid. min_nr is out of range or nr is
out of range.
- Interrupted by a signal handler; see signal(7).
- io_getevents() is not implemented on this architecture.
The asynchronous I/O system calls first appeared in Linux 2.5.
() is Linux-specific and should not be used in programs that
are intended to be portable.
Glibc does not provide a wrapper function for this system call. You could invoke
it using syscall(2)
. But instead, you probably want to use the
() wrapper function provided by libaio
Note that the libaio
wrapper function uses a different type
) for the ctx_id
argument. Note also that the
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
, then the return value follows the usual conventions for
indicating an error: -1, with errno
set to a (positive) value that
indicates the error.
An invalid ctx_id
may cause a segmentation fault instead of generating
the error EINVAL
This page is part of release 3.74 of the Linux man-pages
description of the project, information about reporting bugs, and the latest
version of this page, can be found at