OpenSuSE Man Pages

Man Page or Keyword Search:
Man Architecture
Apropos Keyword Search (all sections) Output format
home | help
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=LONGJMP&sektion=3&manpath=>

home | help