|
亚瑟王 发表于 2012-3-15 18:26 
亲,你看一下这个帖子的select函数的使用吧:http://apps.hi.baidu.com/share/detail/15812193
谢谢亚瑟王。贴子我看了,基本明白了,还有几个小疑问,本人初学linux,基础不太好,见凉。
1 ) 文件描述符是一个int型的整数,fd_set描述的结构是一个数组,数组中的元素就是文件描述符。这样理解对吗?
贴子中有这么一段:
FD_CLR(in fd,fd_set* set);用来清除描述词组set中相关fd 的位
FD_ISSET(int fd,fd_set *set);用来测试描述词组set中相关fd 的位是否为真
FD_SET(int fd,fd_set*set);用来设置描述词组set中相关fd的位
FD_ZERO(fd_set *set);用来清除描述词组set的全部位
比如说:用来请除描述词组set中相关fd的位,能举个例子说明一下吗:
比如
fd_set rdfds;
int sa=100;
int sb=102;
int sc=30;
FD_SET(sa, &rdfds);
FD_SET(sb, &rdfds);
FD_SET(sc, &rdfds);
2 ) 这个时候rdfds会是什么状态呢?
然后再进行:FD_CLR(in sb,fd_set* set);
3) 这个时候rdfds又会是什么状态呢?
就因为对这个不懂,在读do_select函数的时候读不通。
|
|