set的具体实现过程

fd_set的实现详细原理

define FD_SETSIZE1024typedef unsigned long fd_mask;howmany(x, y) (((x) + ((y) – 1)) / (y))typedef struct fd_set {fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];} fd_set;FD_CLR(n, p) ((p)->fds_bits[(n)/NFDBITS] &= ~_fdset_mask(n))FD_ZERO(p)bzero(p, sizeof(*(p)))

假如有如下定义:

fd_set read_set;

FD_SET(600,read_set);

那么最终的推导如下: => read_set->fds_bits[(600 + 32 – 1)/32] |= (1<<(600%32));

,乐观者在灾祸中看到机会;悲观者在机会中看到灾祸

set的具体实现过程

相关文章:

你感兴趣的文章:

标签云: