当前位置: 技术问答>linux和unix
关于fd_set和fd_isset的疑惑
来源: 互联网 发布时间:2017-03-31
本文导语: 看了百度说, fd_set(fd,&fdset) // 将文件描述符fd放入集合fdset中 fd_isset(fd,&fdset) //判断文件描述符是否在集合fdset中 然后,看到很多select的应用程序都是这样写的。 fd_clr(&fdset); //首先清空fdset集合 fd_set(fd,&fdset); ...
看了百度说,
fd_set(fd,&fdset) // 将文件描述符fd放入集合fdset中
fd_isset(fd,&fdset) //判断文件描述符是否在集合fdset中
然后,看到很多select的应用程序都是这样写的。
fd_clr(&fdset); //首先清空fdset集合
fd_set(fd,&fdset); //将待检测描述符放入fdset集合中
select(n+1,&fdset,null,null,null); //判断fdset集合中是否有动作
//然后fd_isset再判断fd在不在fdset中
fd_isset(fd,&fdset); //
我的疑问就产生了,既然select之前的fd_set已经将fd放入了fdset集合之中,那么select之后,
再去检测判断fd_isset是否fd在fdset集合之中还有意义么?已经先期把fd放入了fdset中了,
然后后面又去判断是否在,这个是不是个伪命题呢?肯定都是在的啊?要不要select岂不是没作用了?
我的问题出现在哪里?我自己也很困惑,可能我对fd_set和fd_isset以及select的理解还不是很透彻,请高手
百忙之中点拨下,谢谢!
fd_set(fd,&fdset) // 将文件描述符fd放入集合fdset中
fd_isset(fd,&fdset) //判断文件描述符是否在集合fdset中
然后,看到很多select的应用程序都是这样写的。
fd_clr(&fdset); //首先清空fdset集合
fd_set(fd,&fdset); //将待检测描述符放入fdset集合中
select(n+1,&fdset,null,null,null); //判断fdset集合中是否有动作
//然后fd_isset再判断fd在不在fdset中
fd_isset(fd,&fdset); //
我的疑问就产生了,既然select之前的fd_set已经将fd放入了fdset集合之中,那么select之后,
再去检测判断fd_isset是否fd在fdset集合之中还有意义么?已经先期把fd放入了fdset中了,
然后后面又去判断是否在,这个是不是个伪命题呢?肯定都是在的啊?要不要select岂不是没作用了?
我的问题出现在哪里?我自己也很困惑,可能我对fd_set和fd_isset以及select的理解还不是很透彻,请高手
百忙之中点拨下,谢谢!
|
没有fd_set,select怎么知道该检测哪些描述符?
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。