aio_write – linux man page

aio_write – asynchronous write

USAGE
       #include <aio.h>

       int aio_write(struct aiocb *aiocbp);

DESCRIPTION
       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-
       fied.

       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.

RETURN VALUE
       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).

ERRORS
       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
              this file.

       EINVAL One or more of aio_offset, aio_reqprio, aio_nbytes are  invalid.

       ENOSYS This function is not supported.

NOTES
       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.

CONFORMING TO
       POSIX.1-2001

Comments are closed.