aio_fsync(3p) - Online Manual Page Of Unix/Linux

  Command: man perldoc info search(apropos)

WebSearch:
Our Recommended Sites:
  • Printer Ink
Full-Featured Editor
 

AIO_FSYNC(P)                                                                         AIO_FSYNC(P)



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 synchro-
       nized 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 com-
       pleted.

       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 com-
       pletion 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 mem-
       ber determines the asynchronous notification to occur as specified  in  Signal  Generation
       and Delivery when all operations have achieved synchronized I/O completion. All other mem-
       bers 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 behav-
       ior 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 opera-
       tion 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 limi-
              tations.

       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 orig-
       inal Standard can be obtained online at http://www.opengroup.org/unix/online.html .



POSIX                                          2003                                  AIO_FSYNC(P)