sigsetjmp()

Сохранить состояние окружения, включая сигнальную маску

Прототип:

#include <setjmp.h>
int sigsetjmp( sigjmp_buf env,
int savemask );

Аргументы:

env
Указатель на буфер, в котором функция может сохранить состояние окружения.
savemask
Ненулевое значение, если требуется сохранить текущую маску сигналов, или 0.

Библиотека:

libc

Описание:

Функция sigsetjmp() аналогична setjmp(), если savemask равно нулю. В противном случае sigsetjmp() также сохраняет текущую маску сигналов как часть состояния окружения.


Warning: Не используйте longjmp() или siglongjmp() для восстановления окружения, сохраненного setjmp() или sigsetjmp(), в другом потоке. В этом случае лишь по счастливой случайности приложение немедленно завершится с ошибкой; если же это не произойдет, поток будет выполняться с поврежденным стеком – последствия этого непредсказуемы.

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

0 при непосредственном вызове, иное значение при возвращении через siglongjmp().

Примеры:

См. setjmp().

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

POSIX 1003.1

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

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

pthread_sigmask(), setjmp(), sigaction(), sigprocmask(), sigsuspend()




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