POSIX 异步 I/O 使用 aiocb 结构来执行。aiocb 控制块可标识每个异步 I/O 请求并包含所有控制信息。一个控制块每次只能用于一个请求。控制块可以在完成其请求之后重用。
典型的 POSIX 异步 I/O 操作是通过调用 aio_read(3RT) 或 aio_write(3RT) 来启动的。可以使用轮询或信号来确定操作是否完成。如果使用信号确定操作是否完成,则可以唯一地标记每个操作。然后,在所生成信号的 si_value 组件中返回标记。请参见 siginfo(3HEAD) 手册页。
aio_read(3RT) 是通过异步 I/O 控制块调用的,用于启动读操作。
aio_write(3RT) 是通过异步 I/O 控制块调用的,用于启动写操作。
确定操作完成之后,分别调用 aio_return(3RT) 和 aio_error(3RT) 可获取返回值和错误值。
aio_cancel(3RT) 是通过异步 I/O 控制块调用的,用于取消暂挂操作。如果请求由控制块指定,则可以使用 aio_cancel 来取消特定请求。aio_cancel 还可以取消所有针对指定文件描述符暂挂的请求。
aio_fsync(3RT) 用于对指定文件的所有暂挂 I/O 操作的异步 fsync(3C) 或 fdatasync(3RT) 请求进行排队。
aio_suspend(3RT) 用于暂停调用方,如同已将一个或多个先前的异步 I/O 请求同步。