sigsetmask()

Установить маску блокируемых сигналов

Прототип:

#include <unix.h>
int sigsetmask( int mask );

Аргументы:

mask
Маска сигналов, которые необходимо заблокировать.

Библиотека:

libc

Описание:

Функция sigsetmask() модифицирует текущую маску сигналов (те сигналы, которые будут заблокированы). Сигналы блокируются в том случае, если соответствующий бит маски mask равен 1; макрос sigmask() позволяет сконструировать маску сигналов mask для конкретных номеров сигналов.

При нормальном использовани сигналы блокируются при использовании sigblock(). Для начала критической секции кода, переменные, модифицированные при возникновении сигнала, анализируются для определения отсутствия необходимости выполнять некую работу и процесс приостанавливается с помощью sigpause() с маской, возвращенной через sigblock().

Сигналы SIGKILL, SIGSTOP или SIGCONT невозможно заблокировать.

Возвращаемое значение:

Предыдущая установленная маска сигналов.

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

Unix

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

Предостережения:

Использование этих интерфейсов с системными библиотеками или в многопоточных приложениях не поддерживается.

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

kill(), pthread_sigmask(), sigaction(), sigblock(), sigmask(), signal(), sigpause(), sigprocmask(), sigunblock()




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