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: 21:44:08 GMT, August 05, 2022