|
NAME | LIBRARY | SYNOPSIS | DESCRIPTION | RETURN VALUE | ERRORS | VERSIONS | STANDARDS | HISTORY | SEE ALSO | COLOPHON |
|
|
|
io_setup(2) System Calls Manual io_setup(2)
io_setup - create an asynchronous I/O context
Standard C library (libc, -lc)
#include <linux/aio_abi.h>
#include <sys/syscall.h> /* Definition of SYS_* constants */
#include <unistd.h>
long syscall(SYS_io_setup, unsigned int n, aio_context_t *ctx_idp);
Note: you probably want to use the io_setup(3) wrapper function
provided by libaio; see VERSIONS.
The io_setup() system call creates an asynchronous I/O context
suitable for concurrently processing n operations. The ctx_idp
argument must not point to an AIO context that already exists, and
must be initialized to 0 prior to the call. On successful
creation of the AIO context, *ctx_idp is filled in with the
resulting handle.
On success, io_setup() returns 0. On error, -1 is returned, and
errno is set to indicate the error.
EAGAIN The specified n exceeds the limit of available events, as
defined in /proc/sys/fs/aio-max-nr (see proc_sys_fs(5)).
EFAULT An invalid pointer is passed for ctx_idp.
EINVAL *ctx_idp is not initialized to 0.
EINVAL The specified n exceeds internal limits. n should be
greater than 0.
ENOMEM Insufficient kernel resources are available.
ENOSYS io_setup() is not implemented on this architecture.
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.
Linux.
Linux 2.5.
io_cancel(2), io_destroy(2), io_getevents(2), io_submit(2),
io_setup(3), aio(7)
This page is part of the man-pages (Linux kernel and C library
user-space interface documentation) project. Information about
the project can be found at
⟨https://www.kernel.org/doc/man-pages/⟩. If you have a bug report
for this manual page, see
⟨https://git.kernel.org/pub/scm/docs/man-pages/man-pages.git/tree/CONTRIBUTING⟩.
This page was obtained from the tarball man-pages-6.18.tar.gz
fetched from
⟨https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/⟩ on
2026-05-24. If you discover any rendering problems in this HTML
version of the page, or you believe there is a better or more up-
to-date source for the page, or you have corrections or
improvements to the information in this COLOPHON (which is not
part of the original manual page), send a mail to
man-pages@man7.org
Linux man-pages 6.18 2026-04-11 io_setup(2)
Pages that refer to this page: fork(2), io_cancel(2), io_destroy(2), io_getevents(2), io_submit(2), syscalls(2), io_setup(3), proc_sys_fs(5), systemd.exec(5), aio(7)