sys / select.h中有一个宏定义,它是GNU C Library的一部分,如下所示
#define __FD_ISSET(d, set) \
((__FDS_BITS (set)[__FD_ELT (d)] & __FD_MASK (d)) != 0)
有人可以解释第二行是如何实际扩展的以及它是如何工作的吗? __FDS_BITS / __ FD_ELT / __ FD_MASK定义在哪里? (他们是自己的宏吗?)
答案 0 :(得分:0)
在我的系统(Debian / GNU Linux)上,它被定义为:
# define __FDS_BITS(set) ((set)->__fds_bits)
#define __FD_ELT(d) ((d) / __NFDBITS)
#define __FD_MASK(d) ((__fd_mask) 1 << ((d) % __NFDBITS))
你可以在手册中找到什么FD_ISSET(男人FD_ISSET,或男人2选择)