Описание тега poll-syscall
NonePoll() выполняет аналогичную задачу для select(): он ожидает, пока один из набора файловых дескрипторов станет готовым к выполнению ввода-вывода.
3
ответа
POLLHUP против POLLNVAL, или что такое POLLHUP?
Руководства говорят для опроса (2): POLLHUP - повесить трубку (только вывод) POLLNVAL - Неверный запрос: fd не открыт (только вывод) В чем именно разница? Написание простой программы показывает, что POLLNVAL сработает, если я закрою дескриптор файла…
05 авг '14 в 19:53
0
ответов
Когда можно написать функциональный блок
Я использовал poll системный вызов и в руководстве написано, что POLLOUT указан в поле pollfd.events, чтобы проверить, что функция записи не блокируется. У меня вопрос, в какой ситуации может записать функциональный блок? Разве это возможно только т…
31 янв '19 в 17:31
1
ответ
Почему вызов select() имеет тайм-аут? Каковы разумные значения для него в общих сценариях?
Мне интересно значение тайм-аута в вызове POSIX select(). Я понимаю, почему может потребоваться значение 0 (для опроса дескрипторов файлов). Какие другие значения обычно используются и с какой целью?
04 ноя '16 в 16:20
1
ответ
Read() после опроса возвращает POLLIN и POLLERR
У меня есть модель пула потоков aysnc для управления сетевым подключением. Один поток диспетчера, который продолжает вызывать poll (), и пул рабочих потоков, который либо считывает / записывает один раз poll (), указывает на это. Рассмотрим случай, …
21 апр '17 в 22:36
1
ответ
Возможно ли сбой сетевой записи (), но poll() не обнаруживает
Возможно ли, что вызов write() для сокета не удался, но poll() не обнаружил никакой ошибки? Существуют ли какие-либо категории ошибок, которые могут вызвать сбой записи, но не считаются ошибкой системным вызовом poll()? У меня есть ветка диспетчера,…
23 май '17 в 00:00
1
ответ
Как я могу использовать опрос для приема нескольких клиентов? (TCP-сервер) (C)
Похоже, что этот опросный бизнес был написан сумасшедшим, и я не уверен, как его использовать, чтобы несколько клиентов могли подключиться к серверу, а затем отправить свой вклад всем остальным клиентам. Поэтому, если я хочу, чтобы у меня было три к…
15 дек '14 в 22:52
0
ответов
Доступ к структуре Pollfd во время выполнения системного вызова poll()
У меня есть отдельный поток опроса, который выполняет системный вызов poll(). В событии публикуется рабочий поток для фактического чтения / записи из сети. Поток опроса отключает fd для события, если оно обрабатывается рабочим потоком. Когда рабочий…
17 май '17 в 20:20
1
ответ
Может ли poll() возвращать событие POLLIN даже после того, как партнер повесил трубку?
Я вижу, что системный вызов poll() возвращает событие POLLIN даже после того, как одноранговый узел был закрыт сокетом. Я вижу и ПОЛЛИН, и ПОЛЛЕРР. И это продолжает происходить даже после того, как вызов read() вернул -1. Моя логика обрабатывает POL…
07 май '17 в 00:49
0
ответов
POLLERR с сетевыми розетками
Я использую сокеты netlink для пространства пользователя для связи пространства ядра. В одном из случаев вызов recvmsg завершается неудачно с ошибкой 105, равной ENOBUFS, и тогда на fd устанавливается POLLERR. После этого между пользовательским прос…
05 июн '18 в 16:48
4
ответа
Как обращаться с сокетом Linux, хранящимся в POLLERR, POLLHUP и POLLNVAL?
Мне интересно, что делать, когда опрос устанавливает эти биты? Закрыть сокет, игнорировать или как?
16 июл '14 в 22:06
1
ответ
И сервер и сокет отчетности ECONNRESET. В чем дело?
У меня есть C++ сервер и клиент. Я использую системный вызов poll() для мониторинга сокетов на сервере на предмет готовности к чтению, готовности к записи и ошибок. Я вижу, что для некоторых соединений poll() обнаруживает ECONNRESET после отправки п…
12 июн '17 в 18:52
2
ответа
Как заставить poll() к ошибке
Я пытаюсь проверить сценарий в моем коде, когда poll () возвращает ошибку. Но я не знаю, как заставить poll () возвращать ошибку. Я попытался заблокировать poll () на неопределенный срок и попытался отправить SIGINT, но это просто остановило процесс…
29 июн '17 в 17:47
3
ответа
Почему опрос продолжает возвращаться, хотя нет данных?
Я написал небольшую тестовую программу, чтобы выяснить, как разговаривать с poll, Я создал три файла testa, testb, testc и написал строку hello\n к первому. Итак, вот мой призыв poll: poll(polls.data(),polls.size(),-1) Согласно manpage, время ожидан…
04 сен '13 в 14:35
3
ответа
Почему этот тестовый код использует такой высокий процессор?
Код ниже работает, он отправляет все правильные данные, и он получает правильные данные. Когда я использую его для тестирования очень быстрого сервера, загрузка процессора составляет ~10%. Однако, когда я тестирую медленный сервер, он возрастает до …
26 янв '14 в 13:00
1
ответ
Опрос не возвращается, даже если есть изменения в GPIO FD
Я пытаюсь прочитать значение GPIO, используя каждый раз, когда он меняет состояние. /sys/class/gpio/gpio499/value Я поставил /sys/class/gpio/gpio499/edge быть одновременно Я пытаюсь отслеживать изменение значения с помощью команды опроса в одном отд…
19 окт '17 в 08:01
1
ответ
Удалить fd из ожидающего набора pollfd одновременно с запущенным poll()
Я слежу за списком файловых сокетов и жду событий POLLIN. Сначала я добавляю fds в массив и запускаю poll() для этого массива. Далее, в некоторых случаях я хочу удалить fd из этого массива (без закрытия). А иногда это может происходить одновременно …
15 ноя '20 в 16:34
1
ответ
проверка возвращается в struct pollfd
Согласно опросу man(2): int poll(struct pollfd *fds, nfds_t nfds, int timeout); struct pollfd { int fd; /* file descriptor */ short events; /* requested events */ short revents; /* returned events */ }; Если я напишу if(! (fds.revents &1 )) посл…
22 мар '21 в 23:23
1
ответ
Вызов recv возвращает 0 против события POLLHUP в опросе C
(В программировании сокетов C, используяpollдля управления fd и его событиями)с сокетом потока данных, возвращенным изaccept()call, в чем разница между событием POLLHUP и получением 0 при вызове recv(fd, ...)? Оба они, кажется, указывают на то, что …
18 июн '22 в 11:34
0
ответов
Как перенести «выбрать» на «опрос» для третьих данных об ошибках?
У меня есть следующий код, который использует выбор: fd_set fdsu; FD_ZERO(&fdsu); FD_SET(fd, &fdsu); fd_set efds = fdsu; fd_set dfds = fdsu; while (1) { select(cameraUSBP.fd + 1, NULL, &dfds, &efds, NULL); if (FD_ISSET(cameraUSBP.fd,…
18 июн '22 в 01:43