diff options
Diffstat (limited to 'libaio-0.3.109/man/aio_write.3')
-rw-r--r-- | libaio-0.3.109/man/aio_write.3 | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/libaio-0.3.109/man/aio_write.3 b/libaio-0.3.109/man/aio_write.3 new file mode 100644 index 0000000..7c0cfd0 --- /dev/null +++ b/libaio-0.3.109/man/aio_write.3 @@ -0,0 +1,176 @@ +.TH aio_write 3 2002-09-12 "Linux 2.4" Linux AIO" +.SH NAME +aio_write \- Initiate an asynchronous write operation +.SH SYNOPSYS +.nf +.B #include <errno.h> +.sp +.br +.B #include <aio.h> +.sp +.br +.BI "int aio_write (struct aiocb * aiocbp);" +.fi +.SH DESCRIPTION +This function initiates an asynchronous write operation. The function +call immediately returns after the operation was enqueued or if before +this happens an error was encountered. + +The first +.IR "aiocbp->aio_nbytes" +bytes from the buffer starting at +.IR "aiocbp->aio_buf" +are written to the file for which +.IR "aiocbp->aio_fildes" +is an descriptor, starting at the absolute +position +.IR "aiocbp->aio_offset" +in the file. + +If prioritized I/O is supported by the platform, the +.IR "aiocbp->aio_reqprio " +value is used to adjust the priority before +the request is actually enqueued. + +The calling process is notified about the termination of the read +request according to the +.IR "aiocbp->aio_sigevent" +value. + +When +.IR "aio_write" +returns, the return value is zero if no error +occurred that can be found before the process is enqueued. If such an +early error is found the function returns +.IR -1 +and sets +.IR "errno" +to one of the following values. + +.TP +.B EAGAIN +The request was not enqueued due to (temporarily) exceeded resource +limitations. +.TP +.B ENOSYS +The +.IR "aio_write" +function is not implemented. +.TP +.B EBADF +The +.IR "aiocbp->aio_fildes" +descriptor is not valid. This condition +may not be recognized before enqueueing the request, and so this error +might also be signaled asynchronously. +.TP +.B EINVAL +The +.IR "aiocbp->aio_offset" +or +.IR "aiocbp->aio_reqprio" +value is +invalid. This condition may not be recognized before enqueueing the +request and so this error might also be signaled asynchronously. +.PP + +In the case +.IR "aio_write" +returns zero, the current status of the +request can be queried using +.IR "aio_error" +and +.IR "aio_return" +functions. As long as the value returned by +.IR "aio_error" +is +.IR "EINPROGRESS" +the operation has not yet completed. If +.IR "aio_error" +returns zero, the operation successfully terminated, +otherwise the value is to be interpreted as an error code. If the +function terminated, the result of the operation can be get using a call +to +.IR "aio_return" +. The returned value is the same as an equivalent +call to +.IR "read" +would have returned. Possible error codes returned +by +.IR "aio_error" +are: + +.TP +.B EBADF +The +.IR "aiocbp->aio_fildes" +descriptor is not valid. +.TP +.B ECANCELED +The operation was canceled before the operation was finished. +.TP +.B EINVAL +The +.IR "aiocbp->aio_offset" +value is invalid. +.PP +When the sources are compiled with +.IR "_FILE_OFFSET_BITS == 64" +, this +function is in fact +.IR "aio_write64" +since the LFS interface transparently +replaces the normal implementation. +.SH "RETURN VALUES" +When +.IR "aio_write" +returns, the return value is zero if no error +occurred that can be found before the process is enqueued. If such an +early error is found the function returns +.IR -1 +and sets +.IR "errno" +to one of the following values. +.SH ERRORS +.TP +.B EAGAIN +The request was not enqueued due to (temporarily) exceeded resource +limitations. +.TP +.B ENOSYS +The +.IR "aio_write" +function is not implemented. +.TP +.B EBADF +The +.IR "aiocbp->aio_fildes" +descriptor is not valid. This condition +may not be recognized before enqueueing the request, and so this error +might also be signaled asynchronously. +.TP +.B EINVAL +The +.IR "aiocbp->aio_offset" +or +.IR "aiocbp->aio_reqprio" +value is +invalid. This condition may not be recognized before enqueueing the +request and so this error might also be signaled asynchronously. +.SH "SEE ALSO" +.BR aio(3), +.BR aio_cancel(3), +.BR aio_cancel64(3), +.BR aio_error(3), +.BR aio_error64(3), +.BR aio_fsync(3), +.BR aio_fsync64(3), +.BR aio_init(3), +.BR aio_read(3), +.BR aio_read64(3), +.BR aio_return(3), +.BR aio_return64(3), +.BR aio_suspend(3), +.BR aio_suspend64(3), +.BR aio_write64(3), +.BR errno(3), |