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

NOTES
       POSIX does not specify whether setjmp will save the signal
       context.  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)

                          March 2, 1997                         1