ВПочему у syscall выбора есть только верхний предел файловых дескрипторов, а не нижний предел?
int select(
int nfds,
fd_set *readfds,
fd_set *writefds,
fd_set *exceptfds,
struct timeval *timeout);
системного вызова, nfds
является крупнейшим файловым дескриптором мы заинтересованы в том числе всех файловых дескрипторов, которые установлены в битовых картах. Я думаю, что это предназначено для эффективности, так что реализация не должна проверять все дескрипторы файлов в системе. Если это так, то почему этот сценарий не позволяет нам передать аргумент, чтобы указать минимальный файловый дескриптор интересов?
Я точно не знаю, но файловые дескрипторы имеют тенденцию быть небольшими числами, так что, возможно, именно это указание нижнего предела вряд ли поможет. –
Это то, что кажется простым объяснением. Но может быть и более техническая причина. – euphoria83