Выбрать сигнал из очереди ожидающих сигналов процесса
#include <sys/neutrino.h>int SignalWaitinfo( const sigset_t *set,siginfo_t *info );int SignalWaitinfo_r( const sigset_t *set,siginfo_t *info );
sigset_t
, определяющий сигналы, которые необходимо ожидать.NULL
или указатель на структуру siginfo_t, в которой функция может хранить информацию об извлеченном из очереди сигнале.libc
Системные вызовы SignalWaitinfo() и SignalWaitinfo_r() выбирают ожидающий в очереди сигнал согласно указанной маске set. Если во время вызова нет подходящих ожидающих сигналов, поток блокируется до тех пор, пока один или несколько сигналов в set не станут поступят или пока поток не будет прерван незаблокированным сигналом.
Данные функции идентичны за исключением способа возврата ошибок.
![]() | Вместо прямого использования данных системных вызовов следует рассмотреть возможность вызова sigwaitinfo(). |
Если аргумент info не равен NULL
, информация о выбранном сигнале хранится в нем следующим образом:
Поле структуры siginfo_t | Описание |
---|---|
si_signo | Номер выбранного сигнала |
si_code | Код сигнала |
si_value | Значение сигнала |
Если во время ожидания SignalWaitinfo() возникает сигнал, который не блокируется, вызывается обработчик сигнала и SignalWaitinfo() прерывается с ошибкой EINTR
.
-1
, код ошибки записывается в errno.
ЗОСРВ «Нейтрино»
siginfo_t, SignalKill(), SignalKill_r(), sigwaitinfo()
Предыдущий раздел: Описание API системной библиотеки