Sets a jump point for a nonlocal goto. Format #include <setjmp.h> init sigsetjmp (sigjmp_buf env, int savemask);
1 – Arguments
env An address for a sigjmp_buf structure. savemask An integer value that specifies whether you need to save the current signal mask.
2 – Description
The sigsetjmp function saves its calling environment in its env argument for later use by the siglongjmp function. If the value of savemask is not 0 (zero), sigsetjmp also saves the process's current signal mask as part of the calling environment. See also siglongjmp.
3 – Restrictions
You cannot invoke the longjmp function from an OpenVMS condition handler. However, you may invoke longjmp from a signal handler that has been established for any signal supported by the C RTL, subject to the following nesting restrictions: o The longjmp function will not work if you invoke it from nested signal handlers. The result of the longjmp function, when invoked from a signal handler that has been entered as a result of an exception generated in another signal handler, is undefined. o Do not invoke the sigsetjmp function from a signal handler unless the associated longjmp is to be issued before the handling of that signal is completed. o Do not invoke the longjmp function from within an exit handler (established with atexit or SYS$DCLEXH). Exit handlers are invoked after image tear-down, so the destination address of the longjmp no longer exists. o Invoking longjmp from within a signal handler to return to the main thread of execution might leave your program in an inconsistent state. Possible side effects include the inability to perform I/O or to receive any more UNIX signals. Use siglongjmp instead.
4 – Return Values
0 Indicates success. nonzero The return is a call to the siglongjmp function.