io_getevents(2)

io_getevents2

Read asynchronous i/o events from the completion queue

Usage

#include <linux/aio_abi.h>    /* Definition of *io_* types */
#include <sys/syscall.h>      /* Definition of SYS_* constants */
#include <unistd.h>

int syscall(SYS_io_getevents, aio_context_t ctx_id, long min_nr, long nr, struct io_event *events, struct timespec *timeout);

Library

Standard C library (libc, -lc)

Overview

Note: you probably want to use the io_getevents(3) wrapper function provided by libaio; see VERSIONS.

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 timespec(3) structure.

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.

On error, -1 is returned, and errno is set to indicate the error.

Errors

EFAULT

Either events or timeout is an invalid pointer.

EINTR

Interrupted by a signal handler; see signal(7).

EINVAL

ctx_id is invalid.

EINVAL

min_nr is out of range or nr is out of range.

ENOSYS

io_getevents() is not implemented on this architecture.

Versions

libaio ⟨https://pagure.io/libaio⟩ provides a wrapper function with the same name, but different prototype and return value. You probably want to use that wrapper.

Releases

12 releases since Debian 3.1 (Sarge); the text changed 11 times.

  1. 3.1
  2. 4.0
  3. 5.0
  4. 6.0
  5. 7
  6. 8
  7. 9
  8. 10
  9. 11
  10. 12
  11. 13
  12. Arch

Standards

Linux.

History

Linux 2.5.

From man-pages 6.19-1 in Arch Linux 2026-11-01. Parsed by carta from the page's man source.