SIGPOLL
SIGPOLL | |
---|---|
Описание | Сигнал асинхронноговвода-вывода |
По умолчанию | завершение процесса |
КодыSA_SIGINFO | |
POLL_IN | доступен ввод |
POLL_OUT | возможен вывод |
POLL_MSG | доступно новое сообщение |
POLL_ERR | ошибка ввода-вывода |
POLL_PRI | высокоприоритетный ввод |
POLL_HUP | соединение закрыто |
ВPOSIX-системахSIGPOLL —сигнал, посылаемый процессу для информирования об изменении состояния выполняющегося в фоне асинхронного ввода-вывода.
SIGPOLL — целочисленная константа, определенная в заголовочном файлеsignal.h
. Символьные имена сигналов используются вместо номеров, так как в разных реализациях номера сигналов могут различаться.
СигналSIGIO вLinux является синонимомSIGPOLL.
Этимология
[править |править код]SIG — общийпрефикс сигналов (отангл. signal),POLL — сокращенное написаниеангл. polling — опрос, в контексте системного вызоваpoll
,IO — сокращениеангл. I/O (input-output) — ввод-вывод.
Использование
[править |править код]Согласно POSIX, SIGPOLL — сигнал по умолчанию, посылаемый при изменении состояния открытого файла (например, готовности к вводу или выводу), для которого системным вызовомioctl
был установлен флаг I_SETSIG. Используя этот механизм, программа может осуществлять асинхронный ввод-вывод без необходимости дополнительного мультиплексирования, которое необходимо при использовании функцииselect()
. Возможным минусом данного метода является потеря непрерывности в коде программы и превращения его в нечитабельное«спагетти», с потенциальной возможностью возникновения ошибок типаrace condition.
POSIX 1003.1 (2003 год) рекомендует использование стандартизированных системных вызовов для асинхронного ввода-вывода, определяемых заголовочным файломaio.h
. Всем запросы на ввод-вывод с использованием этих функций ставятся в очередь для асинхронного выполнения, их результаты и состояние могут быть получены через функцииaio_return()
иaio_error()
.
![]() | В статьене хватаетссылок на источники (см.рекомендации по поиску). Информация должна бытьпроверяема, иначе она может быть удалена. Вы можетеотредактировать статью, добавив ссылки наавторитетные источники в видесносок.(7 июня 2019) |