---
name: "aio_error"
section: "2"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/aio_error"
---

# aio\_error(2)

retrieve error status of asynchronous I/O operation (REALTIME)

## NAME

**aio\_error** – retrieve error status of asynchronous I/O operation (REALTIME)

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

**#include \<aio.h\>**

*int*\

**aio\_error**(*const struct aiocb \*iocb*);

## DESCRIPTION

The **aio\_error**() system call returns the error status of the asynchronous I/O request associated with the structure pointed to by *iocb*.

## RETURN VALUES

If the asynchronous I/O request has completed successfully, **aio\_error**() returns 0. If the request has not yet completed, EINPROGRESS is returned. If the request has completed unsuccessfully the error status is returned as described in [read(2)](/read/2.md), [readv(2)](/readv/2.md), [write(2)](/write/2.md), [writev(2)](/writev/2.md), or [fsync(2)](/fsync/2.md). On failure, **aio\_error**() returns -1 and sets errno to indicate the error condition.

## ERRORS

The **aio\_error**() system call will fail if:

- \[EINVAL\]

  The *iocb* argument does not reference an outstanding asynchronous I/O request.

## SEE ALSO

[aio\_cancel(2)](/aio_cancel/2.md), [aio\_read(2)](/aio_read/2.md), [aio\_readv(2)](/aio_readv/2.md), [aio\_return(2)](/aio_return/2.md), [aio\_suspend(2)](/aio_suspend/2.md), [aio\_write(2)](/aio_write/2.md), [aio\_writev(2)](/aio_writev/2.md), [fsync(2)](/fsync/2.md), [read(2)](/read/2.md), [write(2)](/write/2.md), [aio(4)](/aio/4.md)

## STANDARDS

The **aio\_error**() system call is expected to conform to the IEEE Std 1003.1 (“POSIX.1”) standard.

## HISTORY

The **aio\_error**() system call first appeared in FreeBSD 3.0.

## AUTHORS

This manual page was written by Wes Peters ⟨*wes@softweyr.com*⟩.
