poll
1. poll.2.man
Manpage of POLL
POLL
Section: Руководство программиста Linux (2)Updated: 7 декабря 1997
Index Return to Main Contents
НАЗВАНИЕ
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
Index
- НАЗВАНИЕ
- КРАТКАЯ СВОДКА
- ОПИСАНИЕ
- ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
- ОШИБКИ
- СООТВЕТСТВИЕ СТАНДАРТАМ
- ДОСТУПНОСТЬ
- СМОТРИ ТАКЖЕ
- ПЕРЕВОД
This document was created by man2html using the manual pages.
Time: 17:41:54 GMT, May 11, 2012


