当前位置:  技术问答>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);

如果管道没有数据我这个函数就永远不返回,请问有没有其它的方式,如果管道有数据就读取,没数据也立即返回??

|
fcntl(fd, F_SETFL, O_NONBLOCK)

|
可以用select函数,看看它的帮助

|
在mode设置O_NONBLOCK标志

|
或者在open的时候,传入O_NONBLOCK参数,按非阻塞方式打开

    
 
 

您可能感兴趣的文章:

  • 命名管道open时被阻塞了
  • linux shell如何非阻塞写命名管道
  • [Help]FIFO管道非阻塞通讯问题。。。
  • 管道操作时发生阻塞
  • 初学.请帮忙看看fork的子进程读管道时为何阻塞!
  • 初学管道实现时的阻塞问题~
  • 阻塞和非阻塞打开命名管道有什么区别吗?
  • 如何用命名管道(FIFO)实现非阻塞模式进程间通讯(IPC)?
  • TCP发送数据,假如发送套接口是非阻塞的,而要发送的数据大于缓冲区尺寸
  • 使用非阻塞式IO接收客户数据?
  • 非阻塞打开设备文件,如果1秒read不到数据,想让read退出如何做?
  • 串口接收数据有时会阻塞
  • 请问:Linux 串口编程 非阻塞异步模式 write没有数据
  • Linux中串口read怎样阻塞的方式读入数据
  • 使用TCP,在客户端怎么知道建立好的连接已经断开?怎么用非阻塞模式,以及怎么知道socket已经收到数据并立即将数据读出?
  • 为什么服务器端的recvfrom不阻塞等待客户端的数据就返回了?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • select如何实现发送的阻塞和解除阻塞?
  • Linux下read函数默认到底是阻塞的还是非阻塞的?
  • 如何从阻塞式的read中取得阻塞了多少时间?
  • Select() 是否只能在非阻塞IO里使用,在阻塞IO里可以使用吗?
  • 请教sleep和pthread_delay_np:阻塞线程/阻塞进程?
  • recvfrom函数,已经设置好非阻塞模式,是否还存在阻塞的风险?
  • 怎么解除recvfrom阻塞的阻塞状态
  • linux 如何用SOCKET设置函数设置阻塞和非阻塞?
  • 非阻塞SOCKET,竟然也会阻塞?
  • 请教:线程中调用一个阻塞的方法后,进程及其它线程会阻塞么?
  • linux C socke编程 创建的socket默认是阻塞的还是非阻塞的?
  • 什么是非阻塞啊?我用下面的程序设计的,用非阻塞和不用都一样啊?
  • 初级问题,socket(AF_INET, SOCK_STREAM, 0)是阻塞式还是非阻塞式?
  • 请问:我发现在linux上的网络编程时, 若客户端连不上服务端,就会阻塞,但如果是在UNIX上,若连不上,会马上返回,并不阻 塞,怎样让它也能阻塞啊?
  • 关于《Unix网络编程》在ubuntu 8.04下运行的问题,服务器端阻塞在accept调用,客户端阻塞在connect调用,导致连接失败
  • 关于socket编程中阻塞的问题
  • linux fwrite 阻塞问题
  • 关于非阻塞I/O
  • 如何判断一个线程是否处于阻塞状态
  • 关于fread是否会阻塞的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3