Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SETJMP(3)		       Library functions		     SETJMP(3)

NAME
       setjmp, sigsetjmp - save	stack context for non-local goto

SYNOPSIS
       #include	<setjmp.h>

       int setjmp(jmp_buf env);
       int sigsetjmp(sigjmp_buf	env, int savesigs);

DESCRIPTION
       setjmp()	 and  longjmp()	 are useful for	dealing	with errors and	inter-
       rupts encountered in a low-level	subroutine  of	a  program.   setjmp()
       saves  the stack	context/environment in env for later use by longjmp().
       The stack context will be invalidated  if  the  function	 which	called
       setjmp()	returns.

       sigsetjmp() is similar to setjmp().  If savesigs	is nonzero, the	set of
       blocked signals is saved	in env and will	be restored if a  siglongjmp()
       is later	performed with this env.

RETURN VALUE
       setjmp()	 and  sigsetjmp() return 0 if returning	directly, and non-zero
       when returning from longjmp() using the saved context.

CONFORMING TO
       POSIX, ISO 9899 (C99)

NOTES
       POSIX does not specify whether setjmp will save the signal context. (In
       SYSV  it	 will  not. In BSD4.3 it will, and there is a function _setjmp
       that will not.)	If you want to save signal masks, use sigsetjmp.

       setjmp()	and sigsetjmp make programs hard to understand	and  maintain.
       If possible an alternative should be used.

SEE ALSO
       longjmp(3), siglongjmp(3)

				  1997-03-02			     SETJMP(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUE | CONFORMING TO | NOTES | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=setjmp&sektion=3&manpath=Red+Hat+9>

home | help