Annotation of 43BSDTahoe/man/man3/setjmp.3, revision 1.1.1.1

1.1       root        1: .\" Copyright (c) 1980 Regents of the University of California.
                      2: .\" All rights reserved.  The Berkeley software License Agreement
                      3: .\" specifies the terms and conditions for redistribution.
                      4: .\"
                      5: .\"    @(#)setjmp.3    6.2 (Berkeley) 1/9/86
                      6: .\"
                      7: .TH SETJMP 3 "January 9, 1986"
                      8: .UC 4
                      9: .SH NAME
                     10: setjmp, longjmp \- non-local goto
                     11: .SH SYNOPSIS
                     12: .nf
                     13: .B #include <setjmp.h>
                     14: .PP
                     15: .B setjmp(env)
                     16: .B jmp_buf env;
                     17: .PP
                     18: .B longjmp(env, val)
                     19: .B jmp_buf env;
                     20: .PP
                     21: .B _setjmp(env)
                     22: .B jmp_buf env;
                     23: .PP
                     24: .B _longjmp(env, val)
                     25: .B jmp_buf env;
                     26: .fi
                     27: .SH DESCRIPTION
                     28: These routines are useful for dealing with errors 
                     29: and interrupts encountered in
                     30: a low-level subroutine of a program.
                     31: .PP
                     32: .I Setjmp 
                     33: saves its stack environment in
                     34: .I env
                     35: for later use by
                     36: .I longjmp.
                     37: It returns value 0.
                     38: .PP
                     39: .I Longjmp
                     40: restores the environment saved by the last call of
                     41: .IR setjmp .
                     42: It then returns in such a way that execution
                     43: continues as if the call of 
                     44: .I setjmp
                     45: had just returned the value
                     46: .I val
                     47: to the function that invoked
                     48: .I setjmp,
                     49: which must not itself have returned in the interim.
                     50: All accessible data have values as of the time
                     51: .I longjmp
                     52: was called.
                     53: .PP
                     54: .I Setjmp
                     55: and
                     56: .I longjmp
                     57: save and restore the signal mask
                     58: .IR sigmask (2),
                     59: while
                     60: .I _setjmp
                     61: and
                     62: .I _longjmp
                     63: manipulate only the C stack and registers.
                     64: .SH ERRORS
                     65: .PP
                     66: If the contents of the
                     67: .B jmp_buf
                     68: are corrupted, or correspond to an environment that has already returned,
                     69: .I longjmp
                     70: calls the routine 
                     71: .IR longjmperror .
                     72: If
                     73: .I longjmperror
                     74: returns the program is aborted.
                     75: The default version of 
                     76: .I longjmperror
                     77: prints the message ``longjmp botch'' to standard error and returns.
                     78: User programs wishing to exit more gracefully can write their own
                     79: versions of 
                     80: .IR longjmperror .
                     81: .SH "SEE ALSO"
                     82: sigvec(2), sigstack(2), signal(3)

unix.superglobalmegacorp.com

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