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

关于select的疑问

    来源: 互联网  发布时间:2016-08-29

    本文导语:        我们知道select函数返回的是准备好的描述符的个数,对于具体是哪个描述准备好读写了 我们该如何知道呢???多谢大牛解答啊! | 由变量fd_set *fdsets来获得,因此每次使用select都...

      我们知道select函数返回的是准备好的描述符的个数,对于具体是哪个描述准备好读写了
我们该如何知道呢???多谢大牛解答啊!

|
由变量fd_set *fdsets来获得,因此每次使用select都要重新对fd_set *fdset变量进行初始化
int select (int maxfdp1, fd_set *readset, fd_set *writeset, 
  fd_set *exceptset, const struct timeval * timeout);

|
FD_ISSET(fd, fds)

|
顶二楼

|
fd_set是文件句柄的集合。   
    
   FD_ZERO    清空这个集合;   
   FD_SET 往这个集合里面加入一个文件句柄;   
   FD_ISSET      查看某一个文件句柄是否被设置了;   
    
   其中,select的第二个参数是“可读”文件句柄的集合;   
   第三个参数是“可写”文件句柄的集合;经常使用的就是这两个参数。   
    
   你可以看一下select函数的说明,里面有的。

'fd_set') 是一组文件描述符(fd)的集合。由于fd_set类型的长度在不同平台上不同,因此应该用一组标准的宏定义来处理此类变量:

     fd_set set;     FD_ZERO(&set);        /* 将set清零 */     FD_SET(fd, &set);     /* 将fd加入set */     FD_CLR(fd, &set);     /* 将fd从set中清除 */     FD_ISSET(fd, &set);   /* 如果fd在set中则真 */      在过去,一个fd_set通常只能包含少于等于32个文件描述符,因为fd_set其实只用了一个int的比特矢量来实现,在大多数情况下,检查fd_set能包括任意值的文件描述符是系统的责任,但确定你的fd_set到底能放多少有时你应该检查/修改宏FD_SETSIZE的值。*这个值是系统相关的*,同时检查你的系统中的select() 的man手册。有一些系统对多于1024个文件描述符的支持有问题。

|


恩,应该这样判断!

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












  • 相关文章推荐
  • 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定义及介绍
  • php iis7站长之家
  • 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