分类: C/C++
2009-08-28 09:51:34
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个文件描述符的支持有问题。
我们可以用select()对fd_set进行扫描,以判断设备是后可读写或是处于某种状态,它会返回一个掩码为那些可用和不可用得坐下不同的标记
# include
然后可以用FD_ISSET宏来查找你所要求的fd是否在其中,如(FD_ISSET(fd,&fdset))。