Почему выборочный системный вызов имеет только верхний предел для файловых дескрипторов, а не нижний предел? - PullRequest
0 голосов
/ 26 марта 2012

В

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

syscall, nfds - это самый большой дескриптор файла, который нас интересует среди всех файловых дескрипторов, которые установлены в битовых картах. Я думаю, что это предназначено для эффективности, так что реализация не должна сканировать все файловые дескрипторы в системе. Если это так, то почему этот системный вызов не позволяет нам передавать аргумент для указания минимального интересующего файлового дескриптора?

1 Ответ

1 голос
/ 01 апреля 2012

Нумерация файловых дескрипторов для каждого процесса, а не для системы, как вы говорите. Таким образом, они начинаются с нуля каждый раз, таким образом, не так много, чтобы иметь нижний предел.

...