关于fd_set和fd_isset的疑惑
看了百度说,
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的理解还不是很透彻,请高手
百忙之中点拨下,谢谢!
select??fd_set??
fd_isset
------解决方案--------------------没有fd_set,select怎么知道该检测哪些描述符?