Добавить сигналы в маску блокируемых сигналов
#include <unix.h>int sigblock( int mask );
libc
Функция sigblock() добавляет сигналы, указанные в mask, к маске сигналов, доставка которых в данный момент заблокирована. Сигналы блокируются, если соответствующий бит в mask равен 1
; макрос sigmask() предназначен для создания маски для данного номера сигнала. sigblock() возвращает предыдущую маску. Можно восстановить предыдущую маску, вызвав sigsetmask().
При обычном использовании сигнал блокируется при помощи sigblock(). Чтобы начать критическую секцию, переменные, измененные при появлении сигнала, проверяются, чтобы определить, что нет никакой работы, которую нужно выполнить, и процесс приостанавливается в ожидании работы при помощи sigpause() с маской, возвращаемой sigblock().
Невозможно заблокировать SIGKILL
, SIGSTOP
и SIGCONT
– это системное ограничение.
Предыдущая маска замаскированных сигналов.
Unix
Использование этих интерфейсов с системными библиотеками или в многопоточных приложениях не поддерживается.
kill(), pthread_sigmask(), sigaction(), sigmask(), signal(), sigpause(), sigprocmask(), sigsetmask(), sigunblock()
Предыдущий раздел: Описание API системной библиотеки