原理
Select
通过设置或者检查存放在数据结构 fd_set 中的标志位的来鉴别事件。Fd_set是一个输入输出参数,用户通过设置(FD_SET)相应的标志位标识关注的描述符,经内核拷贝到内核空间;内核根据输入fd_set 扫描对应的描述符,新建另一fd_set标识活跃的描述符,扫描完毕后将含有活跃描述符的fd_set 拷贝到用户空间。用户检查(FD_ISSET)内核输出的fd_set 确定活跃的描述符。(进程的fd的分配都是从3开始的,0、1、2已经用作标准输入,输出和错误?而fd_set的每一位对应一个fd。)通过设置或者检查存放在数据结构 fd_set 中的标志位的来鉴别事件。Fd_set