与&:作用是置0
或|:作用是置1
异或^:作用是让指定位为1
看下linuxselect中FD_SET, FD_CLR, FD_ISSSET的具体实现吧。
#define FD_SET(n, p) ((p)->fds_bits[(n)/NFDBITS] |= _fdset_mask(n))
#define FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~_fdset_mask(n))
#define FD_ISSET(n, p) ((p)->fds_bits[(n)/NFDBITS] & _fdset_mask(n))
具体可参见如下文章:
阅读(1216) | 评论(0) | 转发(0) |