setjmp#
Synopsis#
#include <setjmp.h>
int setjmp(jmp_buf env);
Status#
Partially implemented
Conformance#
IEEE Std 1003.1-2017
Description#
A call to setjmp()
shall save the calling environment in its env argument for later use by longjmp()
.
It is unspecified whether setjmp()
is a macro or a function. If a macro definition is suppressed in order to access an
actual function, or a program defines an external identifier with the name setjmp
, the behavior is undefined.
An application shall ensure that an invocation of setjmp()
appears in one of the following contexts only:
The entire controlling expression of a selection or iteration statement
One operand of a relational or equality operator with the other operand an integral constant expression, with the resulting expression being the entire controlling expression of a selection or iteration statement
The operand of a unary
!
operator with the resulting expression being the entire controlling expression of a selection or iterationThe entire expression of an expression statement (possibly cast to
void
)
If the invocation appears in any other context, the behavior is undefined.
Return value#
If the return is from a direct invocation, setjmp()
shall return 0
. If the return is from a call to longjmp()
,
setjmp()
shall return a non-zero value.
Errors#
No errors are defined.
Tests#
Untested
Known bugs#
None