longjmp, siglongjmp - длинный переход к сохраненному контексту стека
НАЗВАНИЕlongjmp, siglongjmp - длинный переход к сохраненному
контексту стека
СИНТАКСИС
#include
void longjmp(jmp_buf env, int val);
void siglongjmp(sigjmp_buf env, int val);
ОПИСАНИЕ
Функции longjmp() и setjmp() очень полезны при работе с
ошибками и прерываниями, встречающимися при выполнении
низкоуровневых процедур программ. longjmp()
восстанавливает окружение, сохраненное последним вызовом
setjmp() с соответствующим параметром env. После того,
как завершится выполнение функции longjmp() и
соответствующий вызов от setjmp() возвратит значение val,
выполнение программы продолжится. longjmp() никогда не
возвратит 0. Если longjmp запускается со вторым
параметром, равным 0, то вместо него возвратится 1.
siglongjmp() подобен longjmp(), но не типу аргумента env.
Если sigsetjmp() вызывает его, то env использует ненулевой
флаг savesigs и siglongjmp() также восстанавливает
настройку заблокированных сигналов.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
Данные функции не возвращают значений.
СООТВЕТСТВИЕ СТАНДАРТАМ
POSIX
ЗАМЕЧАНИЯ
POSIX не определяет, будет ли longjmp восстанавливать
содержание контекста сигнала. Если Вы хотите сохранять и
восстанавливать маску сигнала, то используйте siglongjmp.
Функции longjmp() и siglongjmp() делают программы трудными
для восприятия и дальнейшей поддержки и отладки. По
возможности используйте в работе другие методы и
программы.