int select(
int nfds,
fd_set *readfds,
fd_set *writefds,
fd_set *exceptfds,
struct timeval *timeout);
系统调用,nfds
是最大的文件描述符,我们感兴趣的是在该位图中设置的所有文件描述符中。我认为这是为了提高效率,以便实现不必扫描系统中的所有文件描述符。如果是这样的话,那么为什么这个系统调用不允许我们传递一个参数来指定感兴趣的最小文件描述符呢?
我不确定,但文件描述符往往是小数字,所以也许只是指定下限通常没有多大帮助。 – 2012-03-25 23:15:18
这似乎是最简单的解释。但可能有更多的技术原因。 – euphoria83 2012-03-25 23:33:06