trusty (3) aio_fsync.3posix.gz

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>

       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 .