为什么select syscall只对文件描述符有上限而不是下限?

时间:2012-03-25 23:11:34

标签: operating-system system-calls multiplexing

int select(
          int nfds,
          fd_set *readfds,
          fd_set *writefds,
          fd_set *exceptfds,
          struct timeval *timeout); 

syscall,nfds是我们在位图中设置的所有文件描述符中感兴趣的最大文件描述符。我认为这是为了提高效率,因此实现不必扫描系统中的所有文件描述符。如果是这种情况,那么为什么这个系统调用不允许我们传递参数来指定感兴趣的最小文件描述符呢?

1 个答案:

答案 0 :(得分:1)

文件描述符编号是按照您所说的每个进程而不是每个系统。所以他们每次都从零开始,因此没有多少用于下限。