longjmp man page on Archlinux

Man page or keyword search:  
man Server   11224 pages
apropos Keyword Search (all sections)
Output format
Archlinux logo
[printable version]

LONGJMP(3)		   Linux Programmer's Manual		    LONGJMP(3)

       longjmp, siglongjmp - nonlocal jump to a saved stack context

       #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

       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,	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).

       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  (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:

       ·  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.65 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/.

				  2009-01-13			    LONGJMP(3)

List of man pages available for Archlinux

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net