io_fsync
Section: Linux (3)
Updated: 2002-09-12
Page Index
NAME
io_fsync - Synchronize a file's complete in-core state with that on disk
SYNOPSYS
#include <errno.h>
#include <libaio.h>
int io_fsync(io_context_t ctx, struct iocb *iocb, io_callback_t cb, int fd)
struct iocb {
void *data;
unsigned key;
short aio_lio_opcode;
short aio_reqprio;
int aio_fildes;
};
typedef void (*io_callback_t)(io_context_t ctx, struct iocb *iocb, long res, long res2);
DESCRIPTION
When dealing with asynchronous operations it is sometimes necessary to
get into a consistent state. This would mean for AIO that one wants to
know whether a certain request or a group of request were processed.
This could be done by waiting for the notification sent by the system
after the operation terminated, but this sometimes would mean wasting
resources (mainly computation time).
Calling this function forces all I/O operations operating queued at the
time of the function call operating on the file descriptor
iocb->io_fildes
into the synchronized I/O completion state . The
io_fsync
function returns
immediately but the notification through the method described in
io_callback
will happen only after all requests for this
file descriptor have terminated and the file is synchronized. This also
means that requests for this very same file descriptor which are queued
after the synchronization request are not affected.
RETURN VALUES
Returns 0, otherwise returns errno.
ERRORS
- EFAULT
-
iocbs
referenced data outside of the program's accessible address space.
- EINVAL
-
ctx
refers to an unitialized aio context, the iocb pointed to by
iocbs
contains an improperly initialized iocb,
- EBADF
-
The iocb contains a file descriptor that does not exist.
- EINVAL
-
The file specified in the iocb does not support the given io operation.
SEE ALSO
io(3),
io_cancel(3),
io_getevents(3),
io_prep_pread(3),
io_prep_pwrite(3),
io_queue_init(3),
io_queue_release(3),
io_queue_run(3),
io_queue_wait(3),
io_set_callback(3),
io_submit(3),
errno(3)