sigwaitinfo()

Ожидать определенного сигнала и получить его информацию

Прототип:

#include <signal.h>
int sigwaitinfo( const sigset_t *set,
siginfo_t *info );

Аргументы:

set
Указатель на объект sigset_t, который определяет ожидаемые сигналы.
info
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.

Коды ошибок:

EFAULT
При доступе к буферу возникла ошибка.
EINTR
Ожидание прервано сигналом.

Классификация:

POSIX 1003.1 Realtime Signals Extension

Безопасность использования
Точка остановки потока
Да
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

siginfo_t, pause(), pthread_sigmask(), sigaction(), sigaddset(), sigdelset(), sigemptyset(), sigfillset(), SignalWaitinfo(), sigpending(), sigsuspend(), sigtimedwait(), sigwait()




Предыдущий раздел: Описание API системной библиотеки