siglongjmp man page on Hurd

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

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:

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

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

SEE ALSO
       setjmp(3), sigsetjmp(3)

COLOPHON
       This page is part of release 3.55 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)
[top]

List of man pages available for Hurd

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]
Tweet
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