我想要了解的是:
<aio.h>
中有POSIX AIO
个API是原型,你可以用librt(-lrt)链接你的程序,而<libaio.h>
中的libaio
个API和你的程序是用libaio(-laio)链接的.
我不明白的是:
1.内核处理这两种方法的方式是否不同?
2.使用其中任何一种都必须使用O_DIRECT
号标志吗?
如this post所述,当使用libaio
时,libaio在没有O_DIRECT
的情况下工作良好.好的,明白了,但是:
根据R.Love的Linux System Programming本书,如果用O_DIRECT
打开,Linux在常规文件only上支持aio(我假设是POSIX AIO).但我编写的一个小程序(使用aio.h,与-lrt链接)在没有O_DIRECT
标志的情况下打开的文件上调用aio_write
,运行起来没有问题.