x SuSE Linux 13.1-RELEASE x x SuSE Linux 13.1-RELEASEx LONGJMP(3) Linux Programmer's Manual LONGJMP(3) NAME longjmp, siglongjmp - nonlocal jump to a saved stack context SYNOPSIS #include <setjmp.h> void longjmp(jmp_buf env, int val); void siglongjmp(sigjmp_buf env, int val); Feature Test Macro Requirements for glibc (see feature_test_macros(7)): siglongjmp(): _POSIX_C_SOURCE >= 1 || _XOPEN_SOURCE || _POSIX_C_SOURCE DESCRIPTION longjmp() and setjmp(3) are useful for dealing with errors and inter- rupts encountered in a low-level subroutine of a program. longjmp() restores the environment saved by the last call of setjmp(3) with the corresponding env argument. After longjmp() is completed, program exe- cution continues as if the corresponding call of setjmp(3) had just returned the value val. longjmp() cannot cause 0 to be returned. If longjmp() is invoked with a second argument of 0, 1 will be returned instead. siglongjmp() is similar to longjmp() except for the type of its env argument. If, and only if, the sigsetjmp(3) call that set this env used a nonzero savesigs flag, siglongjmp() also restores the signal mask that was saved by sigsetjmp(3). RETURN VALUE These functions never return. CONFORMING TO C89, C99, and POSIX.1-2001 specify longjmp(). POSIX.1-2001 specifies siglongjmp(). NOTES POSIX does not specify whether longjmp() will restore the signal con- text (see setjmp(3) for some more details). If you want to portably save and restore signal masks, use sigsetjmp(3) and siglongjmp(). The values of automatic variables are unspecified after a call to longjmp() if they meet all the following criteria: o they are local to the function that made the corresponding setjmp(3) call; o their values are changed between the calls to setjmp(3) and longjmp(); and o they are not declared as volatile. Analogous remarks apply for siglongjmp(). longjmp() and siglongjmp() make programs hard to understand and main- tain. If possible, an alternative should be used. SEE ALSO setjmp(3), sigsetjmp(3) COLOPHON This page is part of release 3.69 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man-pages/. 2009-01-13 LONGJMP(3)
Want to link to this manual page? Use this URL:
<http://star2.abcm.com/cgi-bin/bsdi-man?query=siglongjmp&sektion=3&manpath=>