Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ aio_fsync(2) — Tru64 UNIX 5.1b

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

fdatasync(2)

fcntl(2)

fsync(2)

open(2)

read(2)

sync(2)

write(2)

aio_fsync(2)  —  System Calls

NAME

aio_fsync − Asynchronously writes changes in a file to permanent storage

SYNOPSIS

#include <aio.h>
 
int aio_fsync (
   int op,
   struct aiocb ∗aiocbp );

LIBRARY

Asynchronous I/O Library (libaio, libaio_raw)

PARAMETERS

opSpecifies 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 control 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 synchronized 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 operations 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 completed. 

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 synchronized, the error status is set to reflect the success or failure of the operation. The aio_sigevent member of the aiocb structure defines the signal 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. 

SEE ALSO

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

Guide to Realtime Programming

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026