siglongjmp()

Восстановить состояние окружения, сохраненное функцией sigsetjmp(), включая сигнальную маску

Прототип:

#include <setjmp.h>
void siglongjmp( sigjmp_buf env,
int val );

Аргументы:

env
Окружение, сохраненное при последнем вызове sigsetjmp().
val
Значение, которое требуется получить от sigsetjmp().

Библиотека:

libc

Описание:

Функция siglongjmp() является надмножеством функции longjmp(), но также восстанавливает сохраненную маску сигнала потока, если (и только если) она была сохранена в аргументе env в предыдущем вызове sigsetjmp().


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

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

Аналогично longjmp().

Примеры:

См. longjmp().

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

POSIX 1003.1

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

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

longjmp(), pthread_sigmask(), sigaction(), sigprocmask(), sigsuspend()




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