Annotation of cci/usr/src/man/man3/setjmp.3, revision 1.1.1.1

1.1       root        1: .TH SETJMP 3 "19 January 1983"
                      2: .UC 4
                      3: .SH NAME
                      4: setjmp, longjmp \- non-local goto
                      5: .SH SYNOPSIS
                      6: .nf
                      7: .B #include <setjmp.h>
                      8: .PP
                      9: .B setjmp(env)
                     10: .B jmp_buf env;
                     11: .PP
                     12: .B longjmp(env, val)
                     13: .B jmp_buf env;
                     14: .PP
                     15: .B _setjmp(env)
                     16: .B jmp_buf env;
                     17: .PP
                     18: .B _longjmp(env, val)
                     19: .B jmp_buf env;
                     20: .fi
                     21: .SH DESCRIPTION
                     22: These routines are useful for dealing with errors 
                     23: and interrupts encountered in
                     24: a low-level subroutine of a program.
                     25: .PP
                     26: .I Setjmp 
                     27: saves its stack environment in
                     28: .I env
                     29: for later use by
                     30: .I longjmp.
                     31: It returns value 0.
                     32: .PP
                     33: .I Longjmp
                     34: restores the environment saved by the last call of
                     35: .IR setjmp .
                     36: It then returns in such a way that execution
                     37: continues as if the call of 
                     38: .I setjmp
                     39: had just returned the value
                     40: .I val
                     41: to the function that invoked
                     42: .I setjmp,
                     43: which must not itself have returned in the interim.
                     44: All accessible data have values as of the time
                     45: .I longjmp
                     46: was called.
                     47: .PP
                     48: .I Setjmp
                     49: and
                     50: .I longjmp
                     51: save and restore the signal mask
                     52: .IR sigmask (2),
                     53: while
                     54: .I _setjmp
                     55: and
                     56: .I _longjmp
                     57: manipulate only the C stack and registers.
                     58: .SH "SEE ALSO"
                     59: sigvec(2), sigstack(2), signal(3)
                     60: .SH BUGS
                     61: .I Setjmp
                     62: does not save current notion of whether the process is
                     63: executing on the signal stack.  The result is that a
                     64: longjmp to some place on the signal stack leaves the
                     65: signal stack state incorrect.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.