unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (Debian-5.0)
Page:
Section:
Apropos / Subsearch:
optional field

AIO_WRITE(3)               Linux Programmer's Manual              AIO_WRITE(3)



NAME
       aio_write - asynchronous write

SYNOPSIS
       #include <&lt;aio.h>&gt;

       int aio_write(struct aiocb *aiocbp);

       Link with -lrt.

DESCRIPTION
       The  aio_write()  function requests an asynchronous "n = write(fd, buf,
       count)"   with   fd,   buf,   count   given   by    aiocbp-&gt;aio_fildes,
       aiocbp-&gt;aio_buf, aiocbp-&gt;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-&gt;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-&gt;aio_reqprio.

       The field aiocbp-&gt;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.

CONFORMING TO
       POSIX.1-2001.

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.

SEE ALSO
       aio_cancel(3), aio_error(3), aio_fsync(3), aio_read(3),  aio_return(3),
       aio_suspend(3)

COLOPHON
       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/.



                                  2003-11-14                      AIO_WRITE(3)