|IO_SUBMIT(2)||Linux Programmer's Manual||IO_SUBMIT(2)|
NAMEio_submit - submit asynchronous I/O blocks for processing
#include <linux/aio_abi.h> /* Defines needed types */
int io_submit(aio_context_t ctx_id, long nr, struct iocb **iocbpp);
Note: There is no glibc wrapper for this system call; see NOTES.
DESCRIPTIONThe io_submit() system call queues nr I/O request blocks for processing in the AIO context ctx_id. The iocbpp argument should be an array of nr AIO control blocks, which will be submitted to context ctx_id.
RETURN VALUEOn success, io_submit() returns the number of iocbs submitted (which may be 0 if nr is zero). For the failure return, see NOTES.
- Insufficient resources are available to queue any iocbs.
- The file descriptor specified in the first iocb is invalid.
- One of the data structures points to invalid data.
- The AIO context specified by ctx_id is invalid. nr is less than 0. The iocb at *iocbpp is not properly initialized, or the operation specified is invalid for the file descriptor in the iocb.
- io_submit() is not implemented on this architecture.
VERSIONSThe asynchronous I/O system calls first appeared in Linux 2.5.
CONFORMING TOio_submit() 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_submit() wrapper function provided by libaio.
SEE ALSOio_cancel(2), io_destroy(2), io_getevents(2), io_setup(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/.