NAME | SYNOPSIS | API RESTRICTIONS | DESCRIPTION | WARNING | ATTRIBUTES
#include <setjmp.h>int setjmp(jmp_buf env);
The function or functions documented here may not be used safely in all application contexts with all APIs provided in the ChorusOS 5.0 product.
See API(5FEA) for details.
These functions are useful for dealing with errors and interrupts encountered in low-level subroutines of a program.
The setjmp() function saves its stack environment in env (the type of which, jmp_buf , is defined in the <setjmp.h> header file) for later use by longjmp() . It returns the value 0.
The longjmp() function restores the environment saved by the last call of setjmp() with the corresponding env argument. After longjmp() has completed, program execution continues as if the corresponding call of setjmp() had just returned the value val . The caller of setjmp() must not have returned in the interim. The longjmp() function cannot cause setjmp() to return the value 0. If longjmp() is invoked with a second argument of 0, setjmp() will return 1. All accessible data will have the values stored at the time longjmp() was called.
If longjmp() is called without first priming env using a call to setjmp() , or if the last such call was performed by another thread, or if the last such call was in a function that has since returned, this will cause severe disruption to the system.
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | API RESTRICTIONS | DESCRIPTION | WARNING | ATTRIBUTES