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