Документация по LinuxLinuxDoc.Ru 🔍

poll - ожидает некоторое событие в файловом описателе

НАЗВАНИЕ
poll - ожидает некоторое событие в файловом описателе

СИНТАКСИС
#include

int poll(struct pollfd *ufds, unsigned int nfds, int time-
out);

ОПИСАНИЕ
poll является вариантом select. Задается массив из nfds
-структур типа
struct pollfd {
int fd; /* описатель файла */
short events; /* запрошенные события */
short revents; /* возвращенные события */
};
и
значения timeout в миллисекундах. Отрицательное значение
указывает на бесконечный таймаут. Поле fd содержит
описатель открытого файла. Поле events-- входной
параметр, указывающий на битовую маску событий, важных для
приложения. Поле revents-- выходной параметр, в который
ядро помещает информацию о произошедших событиях,
запрошенных или типа POLLERR, POLLHUP или POLLNVAL. (Эти
три битовых флага не будут иметь смысла при использовании
в поле events, поэтому будут установлены в поле revents,
если соответствующее условие истинно). Если ни одно из
запрошенных событий не случилось или не произошла ни одна
из ошибок, то ядро ждет их появления до наступления
таймаута. Вот возможные биты, описанные в :
В также определены значения POLLRDNORM, POLL-
RDBAND, POLLWRNORM, POLLWRBAND и POLLMSG.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном завершении вызова возвращается положительное
значение, равное количеству структур с ненулевыми полями
revents (другими словами, описатели с обнаруженными
событиями или ошибками). Нулевое значение указывает на
то, что время ожидания истекло, и ни один из файловых
описателей не был выбран. При ошибке возвращается -1, а
переменной errno присваивается номер ошибки.

КОДЫ ОШИБОК
EBADF В одном из наборов был задан некорректный описатель
файла.

ENOMEM Не хватило памяти для создания таблицы файловых
описателей.

EFAULT Массив, переданный в качестве аргумента, не
находится в адресном пространстве вызывающей
программы.

EINTR До появления запрошенного события был послан
соответствующий сигнал.

СООТВЕТСТВИЕ СТАНДАРТАМ
XPG4-UNIX.

ДОСТУПНОСТЬ
Системный вызов poll() появился в Linux 2.1.23.
Библиотечный вызов poll() появился в libc 5.4.28
(использует эмуляцию с помощью select(2), если ядро не
посылает системный вызов poll(2)).
Читать новости Linux в Telegram
Linux - poll - ожидает некоторое событие в файловом описателе
Мы в соцсетях ✉