---
name: "aio_return"
section: "2"
platform: "macos"
package: "xnu"
version: "12377.121.6"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/aio_return"
---

# aio\_return(2)

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

## NAME

**aio\_return** – retrieve return status of asynchronous I/O operation (REALTIME)

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

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

*ssize\_t*\

**aio\_return**(*struct aiocb \*aiocbp*);

## DESCRIPTION

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

The **aio\_return**() system call should only be called once, to obtain the final status of an asynchronous I/O operation (once [aio\_error(2)](/aio_error/2.md) returns something other than EINPROGRESS) and to clean up system resources. However, if **aio\_return**() is not called at all, [aio(4)](/aio/4.md) will leak resources.

## RETURN VALUES

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

## ERRORS

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

- \[EINVAL\]

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

- \[EINPROGRESS\]

  The asynchronous I/O request is still in progress.

## LEGACY SYNOPSIS

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

*int*\
 **aio\_return**(*struct aiocb \*aiocbp*);

The type of the return value has changed.

## SEE ALSO

[aio\_cancel(2)](/aio_cancel/2.md), [aio\_error(2)](/aio_error/2.md), [aio\_suspend(2)](/aio_suspend/2.md), [aio\_write(2)](/aio_write/2.md), [fsync(2)](/fsync/2.md), [read(2)](/read/2.md), [write(2)](/write/2.md), [aio(4)](/aio/4.md), [compat(5)](/compat/5.md)

## STANDARDS

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

## HISTORY

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

## AUTHORS

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