Annotation of 43BSDReno/lib/libc/gen/setjmp.3, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1990 The Regents of the University of California.
        !             2: .\" All rights reserved.
        !             3: .\"
        !             4: .\" Redistribution and use in source and binary forms are permitted
        !             5: .\" provided that: (1) source distributions retain this entire copyright
        !             6: .\" notice and comment, and (2) distributions including binaries display
        !             7: .\" the following acknowledgement:  ``This product includes software
        !             8: .\" developed by the University of California, Berkeley and its contributors''
        !             9: .\" in the documentation or other materials provided with the distribution
        !            10: .\" and in all advertising materials mentioning features or use of this
        !            11: .\" software. Neither the name of the University nor the names of its
        !            12: .\" contributors may be used to endorse or promote products derived
        !            13: .\" from this software without specific prior written permission.
        !            14: .\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
        !            15: .\" IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
        !            16: .\" WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
        !            17: .\"
        !            18: .\"    @(#)setjmp.3    6.4 (Berkeley) 5/27/90
        !            19: .\"
        !            20: .TH SETJMP 3 "May 27, 1990"
        !            21: .UC 4
        !            22: .SH NAME
        !            23: sigsetjmp, siglongjmp, setjmp, longjmp, _setjmp, _longjmp longjmperror \-
        !            24: non-local jumps
        !            25: .SH SYNOPSIS
        !            26: .nf
        !            27: .ft B
        !            28: #include <setjmp.h>
        !            29: 
        !            30: sigsetjmp(sigjmp_buf env, int savemask);
        !            31: 
        !            32: void
        !            33: siglongjmp(sigjmp_buf env, int val);
        !            34: 
        !            35: setjmp(jmp_buf env);
        !            36: 
        !            37: void
        !            38: longjmp(jmp_buf env, int val);
        !            39: 
        !            40: _setjmp(jmp_buf env);
        !            41: 
        !            42: void
        !            43: _longjmp(jmp_buf env, int val);
        !            44: 
        !            45: void
        !            46: longjmperror();
        !            47: .ft R
        !            48: .fi
        !            49: .SH DESCRIPTION
        !            50: The
        !            51: .IR sigsetjmp ,
        !            52: .IR setjmp ,
        !            53: and
        !            54: .IR _setjmp
        !            55: functions save their calling environment in
        !            56: .IR env . 
        !            57: Each of these functions returns 0.
        !            58: .PP
        !            59: The corresponding 
        !            60: .I longjmp
        !            61: functions restore the environment saved by their respective versions
        !            62: of the
        !            63: .I setjmp
        !            64: function.
        !            65: They then return so that program execution continues as if the
        !            66: .I setjmp
        !            67: call had returned 
        !            68: .IR val ,
        !            69: instead of 0.
        !            70: .PP
        !            71: Pairs of calls may be intermixed, i.e. both 
        !            72: .I sigsetjmp
        !            73: and
        !            74: .I siglongjmp
        !            75: and
        !            76: .I setjmp
        !            77: and
        !            78: .I longjmp
        !            79: combinations may be used in the same program, however, individual
        !            80: calls may not, i.e. the 
        !            81: .I env
        !            82: argument to 
        !            83: .I sigsetjmp
        !            84: may not be passed to
        !            85: .IR longjmp .
        !            86: .PP
        !            87: The
        !            88: .I longjmp
        !            89: routines may not be called after the routine which called the
        !            90: .I setjmp
        !            91: routines returns.
        !            92: .PP
        !            93: All accessible data have values as of the time the
        !            94: .I longjmp
        !            95: routine was called.
        !            96: .PP
        !            97: .I Setjmp/longjmp
        !            98: pairs save and restore the signal mask (see 
        !            99: .IR sigmask (2)),
        !           100: while
        !           101: .I _setjmp/_longjmp
        !           102: pairs save and restore only the register set and the stack.
        !           103: .PP
        !           104: .I Sigsetjmp/siglongjmp
        !           105: pairs save and restore the signal mask if the argument
        !           106: .I savemask
        !           107: is non-zero, otherwise only the register set and the stack are saved.
        !           108: .SH ERRORS
        !           109: If the contents of the
        !           110: .I env
        !           111: are corrupted, or correspond to an environment that has already returned,
        !           112: the 
        !           113: .I longjmp
        !           114: routine calls the routine
        !           115: .IR longjmperror (3).
        !           116: If
        !           117: .I longjmperror
        !           118: returns the program is aborted (see abort(2)).
        !           119: The default version of 
        !           120: .I longjmperror
        !           121: prints the message ``longjmp botch'' to standard error and returns.
        !           122: User programs wishing to exit more gracefully should write their own
        !           123: versions of 
        !           124: .IR longjmperror .
        !           125: .SH "SEE ALSO"
        !           126: 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.