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 con-
     text.


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)