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()
.
Сигналы POSIX |
SIGABRT | SIGALRM | SIGFPE | SIGHUP | SIGILL | SIGINT | SIGKILL | SIGPIPE | SIGQUIT | SIGSEGV | SIGTERM | SIGUSR1 | SIGUSR2 | SIGCHLD | SIGCONT | SIGSTOP | SIGTSTP | SIGTTIN | SIGTTOU | SIGBUS | SIGPOLL | SIGPROF | SIGSYS | SIGTRAP | SIGURG | SIGVTALRM | SIGXCPU | SIGXFSZ |
Сигналы реального времени (определяемые пользователем) — SIGRTMIN - SIGRTMAX. |
Некоторые сигналы не включенные в POSIX и синонимы |
SIGIOT | SIGEMT | SIGSTKFLT | SIGIO | SIGCLD | SIGPWR (SIGINFO) | SIGLOST | SIGWINCH | SIGUNUSED |