关于linux里面的异步io的问题,请各位给点提示,谢谢

C、C++和Java语言
回复
leolyq
帖子: 3
注册时间: 2006-10-27 23:06
送出感谢: 0
接收感谢: 0

关于linux里面的异步io的问题,请各位给点提示,谢谢

#1

帖子 leolyq » 2006-10-27 23:17

包含了 头文件 aio.h
但是编译的时候会有如下错误提示:
myaio.o: In function `main':/home/aki/kdevelop/myaio/src/myaio.c:24: undefined reference to `aio_read'
myaio.o: In function `on_input':/home/aki/kdevelop/myaio/src/myaio.c:34: undefined reference to `aio_error'
:/home/aki/kdevelop/myaio/src/myaio.c:36: undefined reference to `aio_return'
:/home/aki/kdevelop/myaio/src/myaio.c:42: undefined reference to `aio_read'

小弟是新来的,刚刚接触linux编程,还不是很熟悉,请高手一定要指导一下哦!!
附上我的源码:

#include <aio.h>
#include <stdio.h>
#include <signal.h>

struct aiocb kbcbuf;
int done;

void on_input(int);
void setup_aio_buffer();

main()
{

done=0;
signal(SIGIO, on_input);
setup_aio_buffer();
aio_read(&kbcbuf);
while(done!=1)
pause();
}

void on_input(int signum)
{
int c;
char* cp=(char*)kbcbuf.aio_buf;

if(aio_error(&kbcbuf)!=0)
perror("Reading failed");
else if(aio_return(&kbcbuf)==1)
c=*cp;
if(c=='q'||c==EOF)
done=1;
else printf("%c", c);

aio_read(&kbcbuf);
}

void setup_aio_buffer()
{
static char input[1];
kbcbuf.aio_fildes=0;
kbcbuf.aio_buf=input;
kbcbuf.aio_nbytes=1;
kbcbuf.aio_offset=0;
kbcbuf.aio_sigevent.sigev_notify=SIGEV_SIGNAL;
kbcbuf.aio_sigevent.sigev_signo=SIGIO;
}
leolyq
帖子: 3
注册时间: 2006-10-27 23:06
送出感谢: 0
接收感谢: 0

#2

帖子 leolyq » 2006-10-28 0:29

请各位高手帮帮忙阿!!!
头像
efan
帖子: 238
注册时间: 2006-09-14 21:59
来自: 广东
送出感谢: 0
接收感谢: 0
联系:

#3

帖子 efan » 2006-10-29 18:35

链接错误,是要用某些库吧
传说中的一凡……
头像
Xtire
帖子: 188
注册时间: 2005-09-11 14:08
来自: N朝古都
送出感谢: 0
接收感谢: 0

#4

帖子 Xtire » 2006-11-02 22:17

加上实时库。

gcc -lrt .....
回复

回到 “C/C++/Java”