编程接口指南

POSIX 异步 I/O

POSIX 异步 I/O 使用 aiocb 结构来执行。aiocb 控制块可标识每个异步 I/O 请求并包含所有控制信息。一个控制块每次只能用于一个请求。控制块可以在完成其请求之后重用。

典型的 POSIX 异步 I/O 操作是通过调用 aio_read(3RT)aio_write(3RT) 来启动的。可以使用轮询或信号来确定操作是否完成。如果使用信号确定操作是否完成,则可以唯一地标记每个操作。然后,在所生成信号的 si_value 组件中返回标记。请参见 siginfo(3HEAD) 手册页。

aio_read

aio_read(3RT) 是通过异步 I/O 控制块调用的,用于启动读操作。

aio_write

aio_write(3RT) 是通过异步 I/O 控制块调用的,用于启动写操作。

aio_return, aio_error

确定操作完成之后,分别调用 aio_return(3RT)aio_error(3RT) 可获取返回值和错误值。

aio_cancel

aio_cancel(3RT) 是通过异步 I/O 控制块调用的,用于取消暂挂操作。如果请求由控制块指定,则可以使用 aio_cancel 来取消特定请求。aio_cancel 还可以取消所有针对指定文件描述符暂挂的请求。

aio_fsync

aio_fsync(3RT) 用于对指定文件的所有暂挂 I/O 操作的异步 fsync(3C)fdatasync(3RT) 请求进行排队。

aio_suspend

aio_suspend(3RT) 用于暂停调用方,如同已将一个或多个先前的异步 I/O 请求同步。