SETJMP
Section: C Library Functions (3)
Index
Return to Main Contents
BSD mandoc
BSD 4
NAME
sigsetjmp
siglongjmp
setjmp
longjmp
_setjmp
_longjmp
longjmperror
- non-local jumps
SYNOPSIS
Fd #include <setjmp.h>
Ft int
Fn sigsetjmp sigjmp_buf env int savemask
Ft void
Fn siglongjmp sigjmp_buf env int val
Ft int
Fn setjmp jmp_buf env
Ft void
Fn longjmp jmp_buf env int val
Ft int
Fn _setjmp jmp_buf env
Ft void
Fn _longjmp jmp_buf env int val
Ft void
Fn longjmperror void
DESCRIPTION
The
Fn sigsetjmp ,
Fn setjmp ,
and
Fn _setjmp
functions save their calling environment in
Fa env .
Each of these functions returns 0.
The corresponding
Fn longjmp
functions restore the environment saved by their most recent respective
invocations
of the
Fn setjmp
function.
They then return so that program execution continues as if the corresponding
invocation of the
Fn setjmp
call had just returned the value specified by
Fa val ,
instead of 0.
Pairs of calls may be intermixed, i.e. both
Fn sigsetjmp
and
Fn siglongjmp
and
Fn setjmp
and
Fn longjmp
combinations may be used in the same program, however, individual
calls may not, e.g. the
Fa env
argument to
Fn setjmp
may not be passed to
Fn siglongjmp .
The
Fn longjmp
routines may not be called after the routine which called the
Fn setjmp
routines returns.
All accessible objects have values as of the time
Fn longjmp
routine was called, except that the values of objects of automatic storage
invocation duration that do not have the
volatile
type and have been changed between the
Fn setjmp
invocation and
Fn longjmp
call are indeterminate.
The
Fn setjmp Ns / Ns Fn longjmp
pairs save and restore the signal mask while
Fn _setjmp Ns / Ns Fn _longjmp
pairs save and restore only the register set and the stack.
(See
Fn sigmask 2 . )
The
Fn sigsetjmp Ns / Ns Fn siglongjmp
function
pairs save and restore the signal mask if the argument
Fa savemask
is non-zero, otherwise only the register set and the stack are saved.
ERRORS
If the contents of the
Fa env
are corrupted, or correspond to an environment that has already returned,
the
Fn longjmp
routine calls the routine
Fn longjmperror 3 .
If
Fn longjmperror
returns the program is aborted (see
abort(2)).
The default version of
Fn longjmperror
prints the message
``longjmp botch
''
to standard error and returns.
User programs wishing to exit more gracefully should write their own
versions of
Fn longjmperror .
SEE ALSO
sigaction(2),
sigaltstack(2),
signal(3)
STANDARDS
The
Fn setjmp
and
Fn longjmp
functions conform to
St -ansiC .
The
Fn sigsetjmp
and
Fn siglongjmp
functions conform to
St -p1003.1-90 .
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- ERRORS
-
- SEE ALSO
-
- STANDARDS
-
This document was created by
man2html,
using the manual pages.
Time: 15:52:54 GMT, January 15, 2023