Quick ?s
Cheat Sheets
Man Pages
The Lynx
LONGJMP(3)		   Linux Programmers Manual		   LONGJMP(3)

       longjmp, siglongjmp - non-local jump to a saved stack context


       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 || _XOPEN_SOURCE

       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

       siglongjmp() is similar to longjmp() except for the  type  of  its  env
       argument.   If  the sigsetjmp(3) call that set this env used a non-zero
       savesigs flag, siglongjmp() also restores the set of blocked signals.

       These functions never return.

       C89, C99, and POSIX.1-2001 specify longjmp().   POSIX.1-2001  specifies

       POSIX  does  not specify whether longjmp() will restore the signal con
       text.  If you want to save and restore signal masks, use  siglongjmp().

       The  values  of	automatic  variables  are  unspecified after a call to
       longjmp() if they meet all the following criteria:

	 they are local to the function that made the corresponding setjmp(3)

	 their	values	are  changed  between  the  calls  to  setjmp(3)  and
	  longjmp(); and

	 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.

       setjmp(3), sigsetjmp(3)

       This  page  is  part of release 3.05 of the Linux man-pages project.  A
       description of the project, and information about reporting  bugs,  can
       be found at http://www.kernel.org/doc/man-pages/.

				  2007-09-06			    LONGJMP(3)

Yals.net is © 1999-2009 Crescendo Communications
Sharing tech info on the web for more than a decade!
This page was generated Thu Apr 30 17:05:27 2009