setjmp, longjmp (3)
  "длинный" переход  

Синтаксис
 
	#include <setjmp.h>
	
	int setjmp (jmp_buf env);
	
	void longjmp (jmp_buf env, int val);

Описание
 

Функции применяются при обработке ошибок, прерываний и исключительных ситуаций.

Функция setjmp сохраняет текущее стековое окружение в массиве env для последующего использования функцией longjmp. Результат функции setjmp равен 0.

Функция longjmp восстанавливает окружение, сохраненное при последнем вызове setjmp с соответствующим аргументом env. После завершения longjmp выполнение программы продолжается так, как будто соответствующий вызов setjmp только что вернул значение val. Если даже при вызове longjmp значение аргумента val было задано 0, вызов setjmp, с которого продолжится выполнение все равно вернет 1.

В промежутке между обращениями к setjmp и longjmp не должно быть возврата из функции, вызывавшей setjmp.

См.также
  signal.


Список системных вызовов