Provided by: manpages-ru_0.98-4_all bug

НАЗВАНИЕ

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

КРАТКАЯ СВОДКА

       #include <sys/poll.h>

       int poll(struct pollfd *ufds, unsigned int nfds, int timeout);

ОПИСАНИЕ

       poll  является вариацией на тему select.  Здесь задается массив из nfds
       структур типа
               struct pollfd {
                       int fd;           /* файловый дескриптор */
                       short events;     /* запрошенные события */
                       short revents;    /* возвращенные события */
               };
       и timeout в миллисекундах.  Отрицательное значение означает бесконечный
       тайм-аут.   Поле fd содержит файловый дескриптор открытого файла.  Поле
       events--  входной  параметр,   указывающий   битовую   маску   событий,
       интересующих  приложение.   Поле revents-- выходной параметр, куда ядро
       помещает информацию о произошедших событиях:  запрошенных  или  событий
       типа  POLLERR,  POLLHUP  или POLLNVAL.  (Эти три битовых флага не имеют
       смысла при использовании в поле  events  и  будут  установлены  в  поле
       revents,  если  соответствующее  условие  истинно.)   Если  ни  одно из
       запрошенных  событий  (или  ошибок)  не  случилось,  то  ядро  ждет  их
       появления до тайм-аута.  Вот возможные биты, описанные в <sys/poll.h>:
           #define POLLIN      0x0001    /* Можно читать данные */
           #define POLLPRI     0x0002    /* Есть срочные данные */
           #define POLLOUT     0x0004    /* Запись не будет блокирована */
           #define POLLERR     0x0008    /* Произошла ошибка */
           #define POLLHUP     0x0010    /* "Положили трубку" */
           #define POLLNVAL    0x0020    /* Неверный запрос: fd не открыт */
       В   <asm/poll.h>  также  определены  значения  POLLRDNORM,  POLLRDBAND,
       POLLWRNORM, POLLWRBAND и POLLMSG.

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

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

ОШИБКИ

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

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

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

СООТВЕТСТВИЕ СТАНДАРТАМ

       XPG4-UNIX.

ДОСТУПНОСТЬ

       Системный вызов poll() появился в  Linux  2.1.23.   Библиотечный  вызов
       poll() появился в libc 5.4.28 (использует эмуляцию с помощью select(2),
       если в вашем ядре нет системного вызова poll(2).

СМОТРИ ТАКЖЕ

       select(2)

ПЕРЕВОД

       Copyright (C) Alexey Mahotkin <alexm@hsys.msk.ru> 2000