int select(int nfds,
fd_set *readfds,
fd_set *writefds,
fd_set *exceptfds,
struct timeval *timeout);
Первый параметр select
, nfds
, должен быть максимальный дескриптор файла плюс 1, который должен быть не менее 1.
Но я видел, что некоторые коды установить nfds быть 0, это использование законно?
Плюс, возвращаемое значение select
установлено на EINVAL
, когда nfds
отрицательный, или timeout
содержит недопустимое значение. Опять же, в нем не указывается, что произошло, когда nfds
равно 0.Что делает «select», когда nfds равно 0?
возможно дубликат [Зачем использовать выбора() вместо сна()?] (Http://stackoverflow.com/questions/3125645/why-use-select-instead-of-sleep) – hyde