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

用select做多路复用时,臬知道是哪一个描述符可读?

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

    本文导语:  是一个这样的问题: 我有一个fd_set,名为logset,里面放了三个FIFO描述符。 执行这样的语句: if( (select( max() + 1, &logset, NULL, NULL, NULL) ) > 0)   read(); 其中max()是取最大的描述符。 这样当其中一个描述符准备好...

是一个这样的问题:
我有一个fd_set,名为logset,里面放了三个FIFO描述符。
执行这样的语句:
if( (select( max() + 1, &logset, NULL, NULL, NULL) ) > 0)
  read();
其中max()是取最大的描述符。
这样当其中一个描述符准备好的时候,我怎么才能知道是哪一个准备好可以读了?

|
#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鈚 rely on the value of tv now! */

           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;
       }

|
楼上的注释里有那个,用FD_ISSET测试你所select的每一个描述符

|
FD_ISSET().
^_^

|
把logset清零,select之后用FD_ISSET()判断

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • select 处理套接字文件描述符
  • 如何使select调用避免描述符操作的不公平现象
  • linux2.6内核最大文件描述字是多少呢?select(maxfd)中maxfd能到10000么?
  • 标准输入描述符是0,造成select识别异常
  • java命名空间javax.accessibility类accessiblestate的类成员方法: selected定义及介绍
  • 究竟怎么样取得的<select name="select_user" size="8" multiple>值
  • java命名空间javax.accessibility类accessiblestate的类成员方法: selectable定义及介绍
  • man select 结果返回 No manual entry for select
  • java命名空间javax.swing.tree类defaulttreeselectionmodel的类成员方法: selection定义及介绍
  • select <0时调用exit(0),为什么程序没有退出,而是继续执行select了?
  • java命名空间javax.swing.tree类defaulttreecellrenderer的类成员方法: selected定义及介绍
  • insert into select和select into的使用和区别介绍
  • java命名空间java.awt.event类itemevent的类成员方法: selected定义及介绍
  • select+read 读服务器发送过来的数据, 假设服务器调用close后, 客户端的select是否返回这个socket可读?
  • java命名空间javax.swing类defaultbuttonmodel的类成员方法: selected定义及介绍
  • JDBC里select sum和select返回的字段类型不一样
  • java命名空间javax.swing.text.html类html.tag的类成员方法: select定义及介绍
  • sql代码:select database select all table
  • java命名空间javax.swing.text.html类html.attribute的类成员方法: selected定义及介绍
  • Oracle中select 1和select *的区别
  • java命名空间javax.swing.plaf.synth接口synthconstants的类成员方法: selected定义及介绍
  • jquery下拉select控件操作方法分享(jquery操作select)
  • java命名空间javax.sound.midi类shortmessage的类成员方法: song_select定义及介绍
  • INSERT INTO SELECT语句与SELECT INTO FROM语句的一些区别
  • java命名空间javax.swing类jfilechooser的类成员方法: cancel_selection定义及介绍
  • select into 和 insert into select 两种表复制语句


  • 站内导航:


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

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

    浙ICP备11055608号-3