Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

OpenSolaris 2009.06 - man page for _setjmp (opensolaris section 3c)

_longjmp(3C)						   Standard C Library Functions 					      _longjmp(3C)

_longjmp, _setjmp - non-local goto
#include <setjmp.h> void _longjmp(jmp_buf env, int val); int _setjmp(jmp_buf env);
The _longjmp() and _setjmp() functions are identical to longjmp(3C) and setjmp(3C), respectively, with the additional restriction that _longjmp() and _setjmp() do not manipulate the signal mask. If _longjmp() is called even though env was never initialized by a call to _setjmp(), or when the last such call was in a function that has since returned, the results are undefined.
Refer to longjmp(3C) and setjmp(3C).
No errors are defined.
If _longjmp() is executed and the environment in which _setjmp() was executed no longer exists, errors can occur. The conditions under which the environment of the _setjmp() no longer exists include exiting the function that contains the _setjmp() call, and exiting an inner block with temporary storage. This condition might not be detectable, in which case the _longjmp() occurs and, if the environment no longer exists, the contents of the temporary storage of an inner block are unpredictable. This condition might also cause unexpected process ter- mination. If the function has returned, the results are undefined. Passing longjmp() a pointer to a buffer not created by setjmp(), passing _longjmp() a pointer to a buffer not created by _setjmp(), passing siglongjmp(3C) a pointer to a buffer not created by sigsetjmp(3C) or passing any of these three functions a buffer that has been modified by the user can cause all the problems listed above, and more. The _longjmp() and _setjmp() functions are included to support programs written to historical system interfaces. New applications should use siglongjmp(3C) and sigsetjmp(3C) respectively.
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ |ATTRIBUTE TYPE |ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |Interface Stability |Standard | +-----------------------------+-----------------------------+
longjmp(3C), setjmp(3C), siglongjmp(3C), sigsetjmp(3C), attributes(5), standards(5) SunOS 5.11 24 Jul 2002 _longjmp(3C)