---
name: "aio_fsync"
section: "3"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/aio_fsync/3"
---

# aio\_fsync(3)

asynchronous file synchronization

## NAME

aio\_fsync - asynchronous file synchronization

## LIBRARY

Real-time library (*librt*, *-lrt*)

## SYNOPSIS

```
#include <aio.h>
```

**int aio\_fsync(int** *op***, struct aiocb \****aiocbp***);**

## DESCRIPTION

The **aio\_fsync**() function does a sync on all outstanding asynchronous I/O operations associated with *aiocbp-\>aio\_fildes*. (See [**aio**(7)](/aio/7.md) for a description of the *aiocb* structure.)

More precisely, if *op* is **O\_SYNC**, then all currently queued I/O operations shall be completed as if by a call of [**fsync**(2)](/fsync/2.md), and if *op* is **O\_DSYNC**, this call is the asynchronous analog of [**fdatasync**(2)](/fdatasync/2.md).

Note that this is a request only; it does not wait for I/O completion.

Apart from *aio\_fildes*, the only field in the structure pointed to by *aiocbp* that is used by this call is the *aio\_sigevent* field (a *sigevent* structure, described in [**sigevent**(3type)](/sigevent/3type.md)), which indicates the desired type of asynchronous notification at completion. All other fields are ignored.

## RETURN VALUE

On success (the sync request was successfully queued) this function returns 0. On error, -1 is returned, and *errno* is set to indicate the error.

## ERRORS

- **EAGAIN**

  Out of resources.

- **EBADF**

  *aio\_fildes* is not a valid file descriptor open for writing.

- **EINVAL**

  Synchronized I/O is not supported for this file, or *op* is not **O\_SYNC** or **O\_DSYNC**.

- **ENOSYS**

  **aio\_fsync**() is not implemented.

## ATTRIBUTES

For an explanation of the terms used in this section, see [**attributes**(7)](/attributes/7.md).

| | | |
| --- | --- | --- |
| **Interface** | **Attribute** | **Value** |
| **aio\_fsync**() | Thread safety | MT-Safe |

## STANDARDS

POSIX.1-2008.

## HISTORY

glibc 2.1. POSIX.1-2001.

## SEE ALSO

[**aio\_cancel**(3)](/aio_cancel/3.md), [**aio\_error**(3)](/aio_error/3.md), [**aio\_read**(3)](/aio_read/3.md), [**aio\_return**(3)](/aio_return/3.md), [**aio\_suspend**(3)](/aio_suspend/3.md), [**aio\_write**(3)](/aio_write/3.md), [**lio\_listio**(3)](/lio_listio/3.md), [**aio**(7)](/aio/7.md), [**sigevent**(3type)](/sigevent/3type.md)
