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