【发布时间】:2012-02-04 18:53:51
【问题描述】:
我似乎明白了什么:
POSIX AIO API 原型在 <aio.h> 中,您将程序与 librt(-lrt) 链接,而 libaio API 在 <libaio.h> 中,您的程序与 libaio (-laio) 链接。
我想不通:
1.内核对这两种方法的处理方式不同吗?
2.O_DIRECT 标志是否强制使用它们中的任何一个?
正如this post 中提到的,libaio 在使用libaio 时可以在没有O_DIRECT 的情况下正常工作。好吧,明白但是:
根据 R.Love 的 Linux System Programming 书,Linux 支持 aio(我假设是 POSIX AIO)在常规文件上仅如果使用O_DIRECT 打开。但是我编写的一个小程序(使用aio.h,与-lrt 链接)在没有O_DIRECT 标志打开的文件上调用aio_write 没有问题。
【问题讨论】:
标签: linux asynchronous io linux-kernel aio