|AIO_WRITE(3)||Linux Programmer's Manual||AIO_WRITE(3)|
int aio_write(struct aiocb *aiocbp);
Link with -lrt.
write(fd, buf, count)
correspond (in order) to the fields aio_fildes, aio_buf, and aio_nbytes of the structure pointed to by aiocbp. (See aio(7) for a description of the aiocb structure.)
If O_APPEND is not set, the data is written starting at the absolute position aiocbp->aio_offset, regardless of the file offset. If O_APPEND is set, data is written at the end of the file in the same order as aio_write() calls are made. After the call, the value of the file offset is unspecified.
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). The return status of a completed I/O operation can be obtained aio_return(3). Asynchronous notification of I/O completion can be obtained by setting aiocbp->aio_sigevent appropriately; see sigevent(7) for details.
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.
- Out of resources.
- aio_fildes is not a valid file descriptor open for writing.
- 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 this file.
- One or more of aio_offset, aio_reqprio, aio_nbytes are invalid.
- aio_write() is not implemented.
|aio_write ()||Thread safety||MT-Safe|
Simultaneous I/O operations specifying the same aiocb structure produce undefined results.