这是把fd_set相关的源代码汇总在一起。这样应该知道fd_set的实现详细原理
2014-07-12 09:30
429 查看
这是把fd_set相关的源代码汇总在一起。这样应该知道fd_set的实现详细原理
define FD_SETSIZE 1024
typedef unsigned long fd_mask;
#define NBBY 8 /* number of bits in a byte */
#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */
#define howmany(x, y) (((x) + ((y) - 1)) / (y))
typedef struct fd_set {
fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
} fd_set;
#define _fdset_mask(n) ((fd_mask)1 << ((n) % NFDBITS))
#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))
#define FD_COPY(f, t) bcopy(f, t, sizeof(*(f)))
#define FD_ZERO(p) bzero(p, sizeof(*(p)))
fd_set master_set_read;
FD_SET(600,master_set_read);
=> master_set_read->fds_bits[(600)/32] |= (1<<(600%32));
define FD_SETSIZE 1024
typedef unsigned long fd_mask;
#define NBBY 8 /* number of bits in a byte */
#define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */
#define howmany(x, y) (((x) + ((y) - 1)) / (y))
typedef struct fd_set {
fd_mask fds_bits[howmany(FD_SETSIZE, NFDBITS)];
} fd_set;
#define _fdset_mask(n) ((fd_mask)1 << ((n) % NFDBITS))
#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))
#define FD_COPY(f, t) bcopy(f, t, sizeof(*(f)))
#define FD_ZERO(p) bzero(p, sizeof(*(p)))
fd_set master_set_read;
FD_SET(600,master_set_read);
=> master_set_read->fds_bits[(600)/32] |= (1<<(600%32));
相关文章推荐
- fd_set实现原理
- 通过对PHP语言的学习,应该知道它是基于函数的一款HTML脚本语言。庞大的函数库支持着PHP语言功能的实现。下面我们为大家介绍有关PHP函数isset()与empty()的相关用法。
- 详细讲述XML Webservice实现原理及相关知识
- 跳跃表,字典树(单词查找树,Trie树),后缀树,KMP算法,AC 自动机相关算法原理详细汇总
- 静态顺序表的实现及相关操作源代码(插入,删除,排序,逆置,超详细)
- 【源代码】手把手教你Autolayout如何使用动画(附类似Passbook效果Demo+详细分析实现原理)
- fd_set具体是怎样实现的
- P2P之UDP穿透NAT的原理与实现 - 增强篇(附修改过的源代码)
- P2P之UDP穿透NAT的原理与实现(2,源代码)
- P2P之UDP穿透NAT的原理与实现(2,源代码)
- 转:P2P之UDP穿透NAT的原理与实现(附源代码)
- 转:P2P之UDP穿透NAT的原理与实现(附源代码)
- P2P之UDP穿透NAT的原理与实现(附源代码)
- P2P之UDP穿透NAT的原理与实现(附源代码)
- P2P之UDP穿透NAT的原理与实现(附源代码)
- P2P之UDP穿透NAT的原理与实现--增强篇(附源代码)
- LINUX下函数FD_SET、FD_CLR等位图操作源代码
- P2P之UDP穿透NAT的原理与实现(附源代码)- -
- UDP穿透NAT的原理与实现(附源代码)
- XML Webservice实现原理及相关知识