AIO_WRITE(3) Linux Programmer's Manual AIO_WRITE(3)
aio_write - asynchronous write
int aio_write(struct aiocb *aiocbp);
Link with -lrt.
The aio_write() function requests an asynchronous "n = write(fd, buf,
count)" with fd, buf, count given by aiocbp->aio_fildes,
aiocbp->aio_buf, aiocbp->aio_nbytes, respectively. The return status n
can be retrieved upon completion using aio_return(3).
If O_APPEND is not set, the data is written starting at the absolute
file offset aiocbp->aio_offset, regardless of the current file posi-
tion. If O_APPEND is set, the data is written at the end of the file.
After this request, the value of the current file position is unspeci-
The "asynchronous" means that this call returns as soon as the request
has been enqueued; the write may or may not have completed when the
call returns. One tests for completion using aio_error(3).
If _POSIX_PRIORITIZED_IO is defined, and this file supports it, then
the asynchronous operation is submitted at a priority equal to that of
the calling process minus aiocbp->aio_reqprio.
The field aiocbp->aio_lio_opcode is ignored.
No data is written to a regular file beyond its maximum offset.
On success, 0 is returned. On error the request is not enqueued, -1 is
returned, and errno is set appropriately. If an error is first
detected later, it will be reported via aio_return(3) (returns status
-1) and aio_error(3) (error status whatever one would have gotten in
errno, such as EBADF).
EAGAIN Out of resources.
EBADF aio_fildes is not a valid file descriptor open for writing.
EFBIG The file is a regular file, we want to write at least one byte,
but the starting position is at or beyond the maximum offset for
EINVAL One or more of aio_offset, aio_reqprio, aio_nbytes are invalid.
ENOSYS This function is not supported.
It is a good idea to zero out the control block before use. This con-
trol block must not be changed while the write operation is in
progress. The buffer area being written out must not be accessed dur-
ing the operation or undefined results may occur. The memory areas
involved must remain valid.
aio_cancel(3), aio_error(3), aio_fsync(3), aio_read(3), aio_return(3),
This page is part of release 3.05 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/.