aio_fsync - Linux


aio_fsync initiates an asynchronous file sync operation for the specified file. This helps ensure that the data written to the file is safely stored on permanent storage, even in the event of a system crash.


  • aiocbp: A pointer to an iocb structure representing the file I/O request.


No options or flags are available.


1. Simple file sync:

#include <libaio.h>

int main() {
  struct iocb cb;
  int fd = open("file", O_RDWR);

  io_prep_fsync(&cb, fd, 0, 0);
  io_submit(io_context_t my_ctx, 1, &cb);
  io_getevents(my_ctx, 1, 1, NULL, NULL);

  return 0;

2. Asynchronous file sync:

#include <aio.h>

int main() {
  int fd = open("file", O_RDWR);

  aio_fsync(fd); // Initiate asynchronous file sync

Common Issues

  • Error codes: aio_fsync may return error codes. Common errors include:
    • EINVAL: Invalid file descriptor or file offset.
    • EFAULT: Invalid user address.
    • ENOSYS: Operation not supported.


aio_fsync can be combined with other asynchronous I/O commands, such as aio_read and aio_write, to enable asynchronous file I/O.

Related Commands

  • fdatasync: Synchronizes file data to permanent storage.
  • fsync: Synchronizes file metadata to permanent storage.
  • libaio: Linux asynchronous I/O library.