Provided by: manpages-posix-dev_2.16-1_all bug

NAME

       aio_fsync - asynchronous file synchronization (REALTIME)

SYNOPSIS

       #include <aio.h>

       int aio_fsync(int op, struct aiocb *aiocbp);

DESCRIPTION

       The aio_fsync() function shall asynchronously force all I/O operations associated with the
       file indicated by the file descriptor aio_fildes member of the aiocb structure  referenced
       by  the  aiocbp  argument  and  queued  at  the  time  of  the  call to aio_fsync() to the
       synchronized I/O completion state. The function call shall return when the synchronization
       request  has  been initiated or queued to the file or device (even when the data cannot be
       synchronized immediately).

       If op is O_DSYNC, all currently queued I/O operations shall be completed as if by  a  call
       to  fdatasync(); that is, as defined for synchronized I/O data integrity completion. If op
       is O_SYNC, all currently queued I/O operations shall be completed  as  if  by  a  call  to
       fsync();  that  is,  as  defined  for  synchronized  I/O file integrity completion. If the
       aio_fsync() function fails, or if the operation queued by aio_fsync() fails, then, as  for
       fsync()  and  fdatasync(),  outstanding  I/O  operations  are  not guaranteed to have been
       completed.

       If aio_fsync() succeeds, then it is only the I/O that was queued at the time of  the  call
       to  aio_fsync()  that  is  guaranteed  to  be forced to the relevant completion state. The
       completion of subsequent I/O on the file descriptor is not guaranteed to be completed in a
       synchronized fashion.

       The  aiocbp argument refers to an asynchronous I/O control block.  The aiocbp value may be
       used as an argument to aio_error() and aio_return() in order to determine the error status
       and  return  status,  respectively,  of the asynchronous operation while it is proceeding.
       When the request is queued, the error status for the operation is [EINPROGRESS].  When all
       data  has  been  successfully  transferred, the error status shall be reset to reflect the
       success or failure of the operation.  If the operation does not complete successfully, the
       error  status  for  the  operation  shall  be set to indicate the error.  The aio_sigevent
       member determines the asynchronous notification to occur as specified in Signal Generation
       and  Delivery  when  all  operations  have achieved synchronized I/O completion. All other
       members of the  structure  referenced  by  aiocbp  are  ignored.   If  the  control  block
       referenced by aiocbp becomes an illegal address prior to asynchronous I/O completion, then
       the behavior is undefined.

       If the aio_fsync() function fails or aiocbp indicates an  error  condition,  data  is  not
       guaranteed to have been successfully transferred.

RETURN VALUE

       The  aio_fsync()  function  shall  return  the  value  0 to the calling process if the I/O
       operation is successfully queued; otherwise, the function shall return the  value  -1  and
       set errno to indicate the error.

ERRORS

       The aio_fsync() function shall fail if:

       EAGAIN The  requested  asynchronous  operation  was  not  queued due to temporary resource
              limitations.

       EBADF  The aio_fildes member of the aiocb structure referenced by the aiocbp  argument  is
              not a valid file descriptor open for writing.

       EINVAL This implementation does not support synchronized I/O for this file.

       EINVAL A value of op other than O_DSYNC or O_SYNC was specified.

       In  the  event  that  any  of the queued I/O operations fail, aio_fsync() shall return the
       error condition defined for read() and write().  The error is returned in the error status
       for the asynchronous fsync() operation, which can be retrieved using aio_error().

       The following sections are informative.

EXAMPLES

       None.

APPLICATION USAGE

       The  aio_fsync() function is part of the Asynchronous Input and Output option and need not
       be available on all implementations.

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       fcntl() , fdatasync() , fsync() , open() , read() , write() , the Base Definitions  volume
       of IEEE Std 1003.1-2001, <aio.h>

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 .