io_getevents
Section: System Calls (2)
Updated: 202-0-11
Index
Return to Main Contents
NAME
io_getevents - read asynchronous I/O events from the completion queue
LIBRARY
Standard C library
(
libc,~
-lc)
SYNOPSIS
#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);
DESCRIPTION
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
provides a wrapper function with the same name,
but different prototype and return value.
You probably want to use that wrapper.
STANDARDS
Linux.
HISTORY
Linux 2.5.
SEE ALSO
io_cancel(2),
io_destroy(2),
io_setup(2),
io_submit(2),
io_getevents(3),
timespec(3),
aio(7),
time(7)
Index
- NAME
-
- LIBRARY
-
- SYNOPSIS
-
- DESCRIPTION
-
- RETURN VALUE
-
- ERRORS
-
- VERSIONS
-
- STANDARDS
-
- HISTORY
-
- SEE ALSO
-