linux 异步io(aio) 学习笔记
时间:2009-04-14 来源:fanyuanmail
同步io一般在读写文件时会一直等待,等读写完成后,执行下一条语句。异步io就不同了,在进行读写文件操作时,程序会继续执行别的操作,等读写完成后利用回调函数或者信号通知主函数。
下面是使用aio的例子程序
#include <stdio.h>
异步读文件
如果正在读文件,一直循环等待,和同步io的效果差不多
while (aio_return(&my_aiocb) == EINPROGRESS); |
回调函数,把buffer的内容打印出来
int call_back_handler(sigval_t sigval)
可以使用回调函数,和信号,这里使用回调函数方式
my_aiocb.aio_sigevent.sigev_notify = SIGEV_THREAD;
|
int main(int argc,char** argv)
调用等待方式 wait_aio(fd);
调用回调函数方式
程序在编译时需要runtime库支持,不知道这个库是否支持嵌入式平台,回来可以试试,还有一种信号方式,明天再写吧 |