当前位置: 技术问答>linux和unix
怎么样以非阻塞的方式从管道中读取数据?因为我用read函数时,如果管道没有数据就会阻塞住???
来源: 互联网 发布时间:2015-06-15
本文导语: 怎么样以非阻塞的方式从管道中读取数据?因为我用read函数时,如果管道没有数据就会阻塞住??? 我的代码是: char chBuff[32]; read(file_pipe[0], chBuff, 16); 如果管道没有数据我这个函数就永远不返回,请问有没有其...
怎么样以非阻塞的方式从管道中读取数据?因为我用read函数时,如果管道没有数据就会阻塞住???
我的代码是:
char chBuff[32];
read(file_pipe[0], chBuff, 16);
如果管道没有数据我这个函数就永远不返回,请问有没有其它的方式,如果管道有数据就读取,没数据也立即返回??
我的代码是:
char chBuff[32];
read(file_pipe[0], chBuff, 16);
如果管道没有数据我这个函数就永远不返回,请问有没有其它的方式,如果管道有数据就读取,没数据也立即返回??
|
fcntl(fd, F_SETFL, O_NONBLOCK)
|
可以用select函数,看看它的帮助
|
在mode设置O_NONBLOCK标志
|
或者在open的时候,传入O_NONBLOCK参数,按非阻塞方式打开