当前位置:  技术问答>linux和unix

非阻塞打开设备文件,如果1秒read不到数据,想让read退出如何做?

    来源: 互联网  发布时间:2015-12-31

    本文导语:  现在是这样,从一个设备读数据,读不到数据的时候,read会一直阻塞住,如何中止read呢? 请大家稍微提示下把。顶贴有分 | 用select 吧 man select 里面有个范例.        #include         ...

现在是这样,从一个设备读数据,读不到数据的时候,read会一直阻塞住,如何中止read呢?

请大家稍微提示下把。顶贴有分

|
用select 吧
man select
里面有个范例.
       #include 
       #include 
       #include 
       #include 

       int
       main(void) {
           fd_set rfds;
           struct timeval tv;
           int retval;

           /* Watch stdin (fd 0) to see when it has input. */
           FD_ZERO(&rfds);
           FD_SET(0, &rfds);

           /* Wait up to five seconds. */
           tv.tv_sec = 5;
           tv.tv_usec = 0;

           retval = select(1, &rfds, NULL, NULL, &tv);
           /* Don’t rely on the value of tv now! */

           if (retval == -1)
               perror("select()");
           else if (retval)
               printf("Data is available now.n");
               /* FD_ISSET(0, &rfds) will be true. */
           else
               printf("No data within five seconds.n");

           return 0;
       }


|
非阻塞打开设备文件?什么意思?
既然它是非阻塞的为什么又“一直阻塞住”,请明示
不知道你怎么打开的设备文件,一般是用ioctl来设置文件描述符的属性的
一般select是使用在阻塞式上的

    
 
 

您可能感兴趣的文章:

  • Linux下read函数默认到底是阻塞的还是非阻塞的?
  • 如何从阻塞式的read中取得阻塞了多少时间?
  • 怎么样以非阻塞的方式从管道中读取数据?因为我用read函数时,如果管道没有数据就会阻塞住???
  • stdio和read/write,缓冲区写满时阻塞的实现机制是什么
  • 可实际情况是read永远阻塞在那儿了。请问这是为什么?
  • 牛人进啊!串口非阻塞模式打开,但read不能立即返回!
  • 阻塞方式,read不返回!!!
  • java socket长连接中解决read阻塞的3个办法
  • 变量的定义位置能阻塞read()么?。。。
  • socket read阻塞:一个线程关闭另一个线程错误
  • Linux中串口read怎样阻塞的方式读入数据
  • [求助]如何让阻塞的信号量、recvfrom退出?
  • recv 阻塞 怎么退出
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • select如何实现发送的阻塞和解除阻塞?
  • 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是否会阻塞的问题
  • linux多线程无法进行阻塞方式的读写操作
  • 阻塞


  • 站内导航:


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

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

    浙ICP备11055608号-3