_longjmp(3C) Standard C Library Functions _longjmp(3C)
NAME
_longjmp, _setjmp - non-local goto
SYNOPSIS
#include <setjmp.h>
void _longjmp(jmp_buf env, int val);
int _setjmp(jmp_buf env);
DESCRIPTION
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.
RETURN VALUES
Refer to longjmp(3C) and setjmp(3C).
ERRORS
No errors are defined.
USAGE
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.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Interface Stability |Standard |
+-----------------------------+-----------------------------+
SEE ALSO
longjmp(3C), setjmp(3C), siglongjmp(3C), sigsetjmp(3C), attributes(5), standards(5)
SunOS 5.10 24 Jul 2002 _longjmp(3C)