Выбрать сигнал из очереди ожидающих сигналов процесса
#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 системной библиотеки