unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OSF1-V5.1-alpha)
Page:
Section:
Apropos / Subsearch:
optional field



aio_fsync(2)							 aio_fsync(2)



NAME

  aio_fsync -  Asynchronously writes changes in	a file to permanent storage

LIBRARY

  Asynchronous I/O Library (libaio, libaio_raw)

SYNOPSIS

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

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

PARAMETERS

  op	      Specifies	file or	data synchronization.

  aiocbp      Specifies	a pointer to an	aiocb structure. This function uses
	      only the aio_fildes and aio_sigevent fields of the aiocbp	con-
	      trol block.

DESCRIPTION

  The aio_fsync	function asynchronously	causes system buffers containing a
  file's modified data to be written to	permanent storage.  All	modified data
  in the file indicated	by the file descriptor in the aio_fildes member	of
  the aiocb structure referenced by the	aiocbp argument	is forced to the syn-
  chronized I/O	completion state.

  The aio_fsync	function returns when the synchronization request has been
  initiated or queued, even when data cannot be	synchronized immediately.

  If op	is O_DSYNC, all	currently queued I/O operations	are completed as if
  by a call to fdatasync. If op	is O_SYNC, all currently queued	I/O opera-
  tions	are completed as if by a call to fsync.	If the aio_fsync function
  fails, outstanding I/O operations are	not guaranteed to have been com-
  pleted.

  If aio_fsync succeeds, only the I/O that was queued at the time of the call
  is guaranteed	to be synchronized; the	completion of subsequent I/O is	not
  guaranteed.

  The aiocbp value may be used as an argument to the aio_error and aio_return
  functions to determine the error or return status 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 synchron-
  ized,	the error status is set	to reflect the success or failure of the
  operation. The aio_sigevent member of	the aiocb structure defines the	sig-
  nal to be generated upon completion of the operation.	 If
  aio_sigevent.sigev_notify equals SIGEV_SIGNAL	and aio_sigevent.sigev_signo
  is non-zero, a signal	will be	generated when all operations have achieved
  synchronized I/O completion.




RETURN VALUES

  Upon successful completion, the aio_fsync function returns a value of	0
  (zero). If the aio_fsync function fails, a value of -1 is returned and
  errno	is set to indicate the error. If aio_fsync fails, outstanding I/O
  operations are not guaranteed	to have	been completed.

ERRORS

  If the aio_fsync function fails, errno may be	set to one of the following
  values:

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

  [EBADF]	 The aio_fildes	member of the aiocb structure is not a valid
		 file descriptor.

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

  If any queued	I/O operations fail, the aio_fsync function returns error
  conditions 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.

RELATED	INFORMATION

  Functions: fdatasync(2), fcntl(2), fsync(2), open(2),	read(2), sync(2),
  write(2)

  Guide	to Realtime Programming