Manual Pages for UNIX Darwin command on man longjmp
MyWebUniversity

Manual Pages for UNIX Darwin command on man longjmp

SETJMP(3) BSD Library Functions Manual SETJMP(3)

NAME

ssiiggsseettjjmmpp, ssiigglloonnggjjmmpp, sseettjjmmpp, lloonnggjjmmpp, sseettjjmmpp, lloonnggjjmmpp, lloonnggjjmmppeerrrroorr

- non-local jumps

LLIIBBRRAARRYY

Standard C Library (libc, -lc)

SYNOPSIS

##iinncclluuddee <>

int ssiiggsseettjjmmpp(sigjmpbuf env, int savemask); void ssiigglloonnggjjmmpp(sigjmpbuf env, int val); int sseettjjmmpp(jmpbuf env); void lloonnggjjmmpp(jmpbuf env, int val); int sseettjjmmpp(jmpbuf env); void lloonnggjjmmpp(jmpbuf env, int val); void lloonnggjjmmppeerrrroorr(void);

DESCRIPTION

The ssiiggsseettjjmmpp(), sseettjjmmpp(), and sseettjjmmpp() functions save their calling environment in env. Each of these functions returns 0. The corresponding lloonnggjjmmpp() functions restore the environment saved by their most recent respective invocations of the sseettjjmmpp() function. They then return so that program execution continues as if the corresponding invocation of the sseettjjmmpp() call had just returned the value specified by val, instead of 0. Pairs of calls may be intermixed, i.e. both ssiiggsseettjjmmpp() and ssiigglloonnggjjmmpp() and sseettjjmmpp() and lloonnggjjmmpp() combinations may be used in the same program, however, individual calls may not, e.g. the env argument to sseettjjmmpp() may not be passed to ssiigglloonnggjjmmpp(). The lloonnggjjmmpp() routines may not be called after the routine which called the sseettjjmmpp() routines returns. All accessible objects have values as of the time lloonnggjjmmpp() 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 sseettjjmmpp() invocation and lloonnggjjmmpp() call are indeterminate. The sseettjjmmpp()/lloonnggjjmmpp() pairs save and restore the signal mask while sseettjjmmpp()/lloonnggjjmmpp() pairs save and restore only the register set and the stack. (See ssiiggpprrooccmmaasskk(2).) The ssiiggsseettjjmmpp()/ssiigglloonnggjjmmpp() function pairs save and restore the signal

mask if the argument savemask is non-zero, otherwise only the register

set and the stack are saved. EERRRROORRSS If the contents of the env are corrupted, or correspond to an environment that has already returned, the lloonnggjjmmpp() routine calls the routine lloonnggjjmmppeerrrroorr(3). If lloonnggjjmmppeerrrroorr() returns the program is aborted (see abort(3)). The default version of lloonnggjjmmppeerrrroorr() prints the message

``longjmp botch'' to standard error and returns. User programs wishing

to exit more gracefully should write their own versions of lloonnggjjmmppeerrrroorr().

SEE ALSO

sigaction(2), sigaltstack(2), signal(3) STANDARDS The sseettjjmmpp() and lloonnggjjmmpp() functions conform to ISO/IEC 9899:1990 (``ISO C90''). The ssiiggsseettjjmmpp() and ssiigglloonnggjjmmpp() functions conform to

IEEE Std 1003.1-1988 (``POSIX.1'').

BSD June 4, 1993 BSD




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™