Преимущества poll(2) перед select(3C) достаточно очевидны:
- интерфейс poll не накладывает ограничений на пространство номеров дескрипторов, во всяком случае пока эти номера входят в диапазон представления int.
- при большом пространстве номеров дескрипторов (65536 в данном контексте следует считать большим пространством), poll часто требует передачи между пользовательским процессом и ядром меньшего объема данных, чем select.
- poll сообщает больше информации о происшедших с дескриптором событиях, чем может сообщить select
- У poll входные и выходные значения разнесены по разным полям структуры, так что не требуется полностью пересоздавать массив fds после каждого вызова.