pthread_sigmask()

Изменить маску сигналов потока

Прототип:

#include <signal.h>
int pthread_sigmask( int how,
const sigset_t *set,
sigset_t *oset );

Аргументы:

how
Этот аргумент действителен только в том случае, если set не равен NULL. Как требуется изменить маску сигналов:
SIG_BLOCK
сделать результирующую маску сигналов объединением текущей маски сигнала и набора сигналов set.
SIG_UNBLOCK
сделать результирующую маску сигналов пересечением текущей маски сигнала и дополнения набора сигналов set.
SIG_SETMASK
сделать результирующую маску сигналов из набора сигналов set.
set
Указатель на объект sigset_t, определяющий сигналы, на которые требуется повлиять в маске.
oset
NULL, или указатель на объект sigset_t, где функция может хранить старую маску сигналов потока.

Библиотека:

libc

Описание:

Функция pthread_sigmask() используется для проверки и/или изменения маски сигналов вызывающего потока. Если set не равен NULL, маска сигналов потока устанавливается в set. Если oset не равно NULL, в oset возвращается старая маска сигналов потока.

Нельзя заблокировать сигналы SIGKILL и SIGSTOP.

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

EOK
Успешное завершение.
EINVAL
Некорректный параметр how.

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

POSIX 1003.1 Threads

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

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

kill(), raise(), sigaction(), sigaddset(), sigdelset(), sigemptyset(), sigfillset(), sigismember(), signal(), SignalProcmask(), sigpending(), sigprocmask()




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