Standard C Library Functions aio_fsync(3C)
NAME
aio_fsync - asynchronous file synchronization
SYNOPSIS
#include
int aio_fsync(int op, struct aiocb *aiocbp);
DESCRIPTION
The aio_fsync() function asynchronously forces all I/O
operations associated with the file indicated by the filedescriptor aio_fildes member of the aiocb structure refer-
enced by the aiocbp argument and queued at the time of thecall to aio_fsync() to the synchronized I/O completion
state. The function call returns 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 are
completed as if by a call to fdatasync(3C); that is, asdefined for synchronized I/O data integrity completion. If
op is O_SYNC, all currently queued I/O operations are com-
pleted as if by a call to fsync(3C); that is, as defined forsynchronized I/O file integrity completion. If the
aio_fsync() function fails, or if the operation queued by
aio_fsync() fails, then, as for fsync(3C) and fdatasync(3C),
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(3C) and aio_return(3C) in order to determine the
error status and return status, respectively, of the asyn-
chronous operation while it is proceeding. When the requestis queued, the error status for the operation is EINPRO-
GRESS. When all data has been successfully transferred, the error status will be reset to reflect the success or failureof the operation. If the operation does not complete suc-
cessfully, the error status for the operation will be set toindicate the error. The aio_sigevent member determines the
asynchronous notification to occur when all operations haveachieved synchronized I/O completion (see signal.h(3HEAD)).
SunOS 5.11 Last change: 5 Feb 2008 1
Standard C Library Functions aio_fsync(3C)
All other members of the structure referenced by aiocbp are ignored. If the control block referenced by aiocbp becomesan illegal address prior to asynchronous I/O completion, then the behavior is undefined.
If the aio_fsync() function fails or the aiocbp indicates an
error condition, data is not guaranteed to have been suc-
cessfully transferred. If aiocbp is NULL, then no status is returned in aiocbp, and no signal is generated upon completion of the operation.RETURN VALUES
The aio_fsync() function returns 0 to the calling process if
the I/O operation is successfully queued; otherwise, the
function returns -1 and sets errno to indicate the error.
ERRORS
The aio_fsync() function will 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 The system 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() returns the error condition defined for read(2)
and write(2). The error will be returned in the error status for the asynchronous fsync(3C) operation, which can beretrieved using aio_error(3C).
USAGE
The aio_fsync() function has a transitional interface for
64-bit file offsets. See lf64(5).
ATTRIBUTES
SunOS 5.11 Last change: 5 Feb 2008 2
Standard C Library Functions aio_fsync(3C)
See attributes(5) for descriptions of the following attri-
butes:____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | MT-Safe |
|_____________________________|_____________________________|
| Standard | See standards(5). ||_____________________________|_____________________________|
SEE ALSO
fcntl(2), open(2), read(2), write(2), aio_error(3C),
aio_return(3C), aio.h(3HEAD), fcntl.h(3HEAD), fdatasync(3C),
fsync(3C), signal.h(3HEAD), attributes(5), lf64(5), stan-
dards(5)SunOS 5.11 Last change: 5 Feb 2008 3