Ожидать определенного сигнала и получить его информацию
#include <signal.h>int sigwaitinfo( const sigset_t *set,siginfo_t *info );
sigset_t
, который определяет ожидаемые сигналы.NULL
или указатель на структуру siginfo_t, где функция может сохранить информацию о сигнале.libc
Функция sigwaitinfo() определяет перечень ожидаемых сигналов set, автоматически очищает его из набора ожидающих сигналов процесса и возвращает его номер.
Если в очереди нет сигналов, указанных в set, sigwaitinfo() блокируется до их поступления. Если они уже поступили, функция возвращает управление без блокирования.
Если info не равна NULL
, sigwaitinfo() сохраняет сведения о полученном сигнале в поля si_signo и si_code структуры info.
Если в очереди присутствует значение для выбранного сигнала, извлекается первое из них и если info не равен NULL
, значение сохраняется в поле si_value структуры info. Системные ресурсы, использованные для сохранения сигнала в очереди, освобождаются для переиспользования. Если с поступившим сигналом не ассоциировано значение, значение поля si_value не определено.
Если больше сигналов указанного вида не буферизировано в очереди, индикация о поступивших сигналах очищается.
Номер сигнала. Если возникла ошибка функция возвращает -1
, код ошибки записывается в errno.
POSIX 1003.1 Realtime Signals Extension
siginfo_t, pause(), pthread_sigmask(), sigaction(), sigaddset(), sigdelset(), sigemptyset(), sigfillset(), SignalWaitinfo(), sigpending(), sigsuspend(), sigtimedwait(), sigwait()
Предыдущий раздел: Описание API системной библиотеки