|IO_SETUP(2)||Linux Programmer's Manual||IO_SETUP(2)|
NAMEio_setup - create an asynchronous I/O context
#include <linux/aio_abi.h> /* Defines needed types */
int io_setup(unsigned nr_events, aio_context_t *ctx_idp);
Note: There is no glibc wrapper for this system call; see NOTES.
DESCRIPTIONThe io_setup() system call creates an asynchronous I/O context suitable for concurrently processing nr_events 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.
RETURN VALUEOn success, io_setup() returns 0. For the failure return, see NOTES.
- The specified nr_events exceeds the user's limit of available events, as defined in /proc/sys/fs/aio-max-nr.
- An invalid pointer is passed for ctx_idp.
- ctx_idp is not initialized, or the specified nr_events exceeds internal limits. nr_events should be greater than 0.
- Insufficient kernel resources are available.
- io_setup() is not implemented on this architecture.
VERSIONSThe asynchronous I/O system calls first appeared in Linux 2.5.
CONFORMING TOio_setup() is Linux-specific and should not be used in programs that are intended to be portable.
NOTESGlibc 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 io_setup() wrapper function provided by libaio.
SEE ALSOio_cancel(2), io_destroy(2), io_getevents(2), io_submit(2), aio(7)
COLOPHONThis page is part of release 3.53 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/.