FD_SET()

fd_set 是一个描述符的集合. 其中每一位是标示每一个描述符. 通过FD_SET()宏在集合中设置描述符.下面是宏的实现...

 1 #define FD_SET(fd, set) do { \
 2      u_int __i; \
 3      for (__i = 0; __i < ((fd_set FAR *)(set))->;fd_count; __i++) { \
 4          if (((fd_set FAR *)(set))->;fd_array[__i] == (fd)) { \
 5              break; \
 6          } \
 7      } \
 8      if (__i == ((fd_set FAR *)(set))->;fd_count) { \
 9          if (((fd_set FAR *)(set))->;fd_count < FD_SETSIZE) { \
10              ((fd_set FAR *)(set))->;fd_array[__i] = (fd); \
11              ((fd_set FAR *)(set))->;fd_count++; \
12          } \
13      } \
14 } while(0)
原文地址:https://www.cnblogs.com/kupig/p/2453602.html