summaryrefslogtreecommitdiffstats
path: root/man3p/aio_write.3p
diff options
context:
space:
mode:
Diffstat (limited to 'man3p/aio_write.3p')
-rw-r--r--man3p/aio_write.3p166
1 files changed, 166 insertions, 0 deletions
diff --git a/man3p/aio_write.3p b/man3p/aio_write.3p
new file mode 100644
index 000000000..17a2c55ae
--- /dev/null
+++ b/man3p/aio_write.3p
@@ -0,0 +1,166 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "AIO_WRITE" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" aio_write
+.SH NAME
+aio_write \- asynchronous write to a file (\fBREALTIME\fP)
+.SH SYNOPSIS
+.LP
+\fB#include <aio.h>
+.br
+.sp
+int aio_write(struct aiocb *\fP\fIaiocbp\fP\fB); \fP
+\fB
+.br
+\fP
+.SH DESCRIPTION
+.LP
+The \fIaio_write\fP() function shall write \fIaiocbp\fP->\fIaio_nbytes\fP
+to the file associated with
+\fIaiocbp\fP->\fIaio_fildes\fP from the buffer pointed to by \fIaiocbp\fP->\fIaio_buf\fP.
+The function shall return when
+the write request has been initiated or, at a minimum, queued to the
+file or device.
+.LP
+If prioritized I/O is supported for this file, then the asynchronous
+operation shall be submitted at a priority equal to the
+scheduling priority of the process minus \fIaiocbp\fP->\fIaio_reqprio\fP.
+.LP
+The \fIaiocbp\fP argument may be used as an argument to \fIaio_error\fP()
+and \fIaio_return\fP() in order to determine the error status and
+return status, respectively,
+of the asynchronous operation while it is proceeding.
+.LP
+The \fIaiocbp\fP argument points to an \fBaiocb\fP structure. If the
+buffer pointed to by \fIaiocbp\fP->\fIaio_buf\fP or
+the control block pointed to by \fIaiocbp\fP becomes an illegal address
+prior to asynchronous I/O completion, then the behavior is
+undefined.
+.LP
+If O_APPEND is not set for the file descriptor \fIaio_fildes\fP, then
+the requested operation shall take place at the absolute
+position in the file as given by \fIaio_offset\fP, as if \fIlseek\fP()
+were called
+immediately prior to the operation with an \fIoffset\fP equal to \fIaio_offset\fP
+and a \fIwhence\fP equal to SEEK_SET. If
+O_APPEND is set for the file descriptor, write operations append to
+the file in the same order as the calls were made. After a
+successful call to enqueue an asynchronous I/O operation, the value
+of the file offset for the file is unspecified.
+.LP
+The \fIaiocbp\fP->\fIaio_lio_opcode\fP field shall be ignored by \fIaio_write\fP().
+.LP
+Simultaneous asynchronous operations using the same \fIaiocbp\fP produce
+undefined results.
+.LP
+If synchronized I/O is enabled on the file associated with \fIaiocbp\fP->\fIaio_fildes\fP,
+the behavior of this function shall
+be according to the definitions of synchronized I/O data integrity
+completion, and synchronized I/O file integrity completion.
+.LP
+For any system action that changes the process memory space while
+an asynchronous I/O is outstanding to the address range being
+changed, the result of that action is undefined.
+.LP
+For regular files, no data transfer shall occur past the offset maximum
+established in the open file description associated with
+\fIaiocbp\fP->\fIaio_fildes\fP.
+.SH RETURN VALUE
+.LP
+The \fIaio_write\fP() function shall return the value zero to the
+calling process if the I/O operation is successfully queued;
+otherwise, the function shall return the value -1 and set \fIerrno\fP
+to indicate the error.
+.SH ERRORS
+.LP
+The \fIaio_write\fP() function shall fail if:
+.TP 7
+.B EAGAIN
+The requested asynchronous I/O operation was not queued due to system
+resource limitations.
+.sp
+.LP
+Each of the following conditions may be detected synchronously at
+the time of the call to \fIaio_write\fP(), or asynchronously.
+If any of the conditions below are detected synchronously, the \fIaio_write\fP()
+function shall return -1 and set \fIerrno\fP to
+the corresponding value. If any of the conditions below are detected
+asynchronously, the return status of the asynchronous
+operation shall be set to -1, and the error status of the asynchronous
+operation is set to the corresponding value.
+.TP 7
+.B EBADF
+The \fIaiocbp\fP->\fIaio_fildes\fP argument is not a valid file descriptor
+open for writing.
+.TP 7
+.B EINVAL
+The file offset value implied by \fIaiocbp\fP->\fIaio_offset\fP would
+be invalid, \fIaiocbp\fP->\fIaio_reqprio\fP is
+not a valid value, or \fIaiocbp\fP->\fIaio_nbytes\fP is an invalid
+value.
+.sp
+.LP
+In the case that the \fIaio_write\fP() successfully queues the I/O
+operation, the return status of the asynchronous operation
+shall be one of the values normally returned by the \fIwrite\fP()
+function call. If the
+operation is successfully queued but is subsequently canceled or encounters
+an error, the error status for the asynchronous
+operation contains one of the values normally set by the \fIwrite\fP()
+function call, or one
+of the following:
+.TP 7
+.B EBADF
+The \fIaiocbp\fP->\fIaio_fildes\fP argument is not a valid file descriptor
+open for writing.
+.TP 7
+.B EINVAL
+The file offset value implied by \fIaiocbp\fP->\fIaio_offset\fP would
+be invalid.
+.TP 7
+.B ECANCELED
+The requested I/O was canceled before the I/O completed due to an
+explicit \fIaio_cancel\fP() request.
+.sp
+.LP
+The following condition may be detected synchronously or asynchronously:
+.TP 7
+.B EFBIG
+The file is a regular file, \fIaiobcp\fP->\fIaio_nbytes\fP is greater
+than 0, and the starting offset in
+\fIaiobcp\fP->\fIaio_offset\fP is at or beyond the offset maximum
+in the open file description associated with
+\fIaiocbp\fP->\fIaio_fildes\fP.
+.sp
+.LP
+\fIThe following sections are informative.\fP
+.SH EXAMPLES
+.LP
+None.
+.SH APPLICATION USAGE
+.LP
+The \fIaio_write\fP() function is part of the Asynchronous Input and
+Output option and need not be available on all
+implementations.
+.SH RATIONALE
+.LP
+None.
+.SH FUTURE DIRECTIONS
+.LP
+None.
+.SH SEE ALSO
+.LP
+\fIaio_cancel\fP() , \fIaio_error\fP() , \fIaio_read\fP() , \fIaio_return\fP()
+, \fIclose\fP()
+, \fIexec\fP() , \fIexit\fP() , \fIfork\fP() , \fIlio_listio\fP()
+, \fIlseek\fP() , \fIwrite\fP() , the Base Definitions volume of IEEE\ Std\ 1003.1-2001,
+\fI<aio.h>\fP
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group. In the
+event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .