众所周知,Linux下的多路复用函数select采用描述符集表示处理的描述符.描述符集的大小就是它所能处理的最大描述符限制.通常情况下该值为1024,等同于每个进程所能打开的描述符个数. 增大描述符集大小的唯一方法是先增大FD_SETSIZE的值,然后重新编译内核,不重新编译内核而改变其值时不够的. 在阅读Libev源码时,发现它实现了一种突破这种限制的方法.该方法本质上而言,就是自定义fd_set结构,以及FD_SET,FD_CLR,FD_ISSET宏. 首先看一下Linux中原fd_set结…