## setjmp

#### OS/161 Reference Manual

### Name

setjmp, longjmp - non-local jump operations

### Library

Standard C Library (libc, -lc)

### Synopsis

#include <setjmp.h>
int
setjmp(jmp_buf jb);
void
longjmp(jmp_buf jb, int returncode);

### Description

setjmp saves the current stack frame and processor state in jb. A subsequent call to longjmp with the same jb causes execution to jump to where setjmp was called from.

If the stack frame that called setjmp returns before longjmp is called, the results are undefined.

### Return Values

When called, setjmp returns 0. When longjmp is called, it does not itself return, but instead causes setjmp to appear to return again, this time returning returncode.

If zero is passed returncode, it is forced to 1 instead.