同步IO表示任务必须等待I/O操作,异步IO时,程序可以在下达I/O操作后继续运行,这消除了同步I/O的一些不必要的等待
/**
* 异步I/O的使用
*/
#include<taskLib.h>
#include<stdio.h>
#include<unistd.h>
#include<pipeDrv.h>
#include<ioLib.h>
#include<selectLib.h>
#include<aio.h>
#define TASK_PRIORITY 125
#define TASK_PRIORITY_TWO 130
#define STACK_SIZE 225
#define PIPENAME "/pipe/p"
#define MSGCOUNT 10
#define MSGSIZE 255
/*任务A*/
void taskA(void);
/*任务ID*/
int taskId_A;
/*管道1,2的文件描述符*/
int fd;
int taskDemo() {
char buf[255];
int len,rfd;
struct timeval val;
struct aiocb readAio;
/*创建任务:taskSpawn创建并激活任务*/
taskId_A=taskSpawn("taskA", TASK_PRIORITY, VX_FP_TASK, STACK_SIZE,
(FUNCPTR)taskA, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
if (taskId_A==ERROR)
printf("taskA taskSpawn() failed!\n");
/*创建管道,并打开*/
pipeDevCreate(PIPENAME,MSGCOUNT,MSGSIZE);
fd=open(PIPENAME,O_RDWR,0);
/*初始化读取AIO块*/