следующая строка пришла мне на глаза в данном коде:
select(0, (fd_set *) NULL, (fd_set *) NULL, (fd_set *) NULL, &timeout);
http://linux.die.net/man/2/select
Каждый из трех наборов дескрипторов файлов может быть указан как NULL, если никакие файловые дескрипторы не просматриваются для соответствующего класса событий.
Поэтому я вижу, что это действительно так, чтобы передать в него NULL. В этом случае это может привести только к активному оживлению.
Это верно? Я немного не уверен.
Некоторые вызовы кода select() со всеми тремя наборами пустыми, nfds zero и не-NULL-тайм-аут являются довольно переносимым способом спать с точностью до секунды.
Взято отсюда.