Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ siglongjmp(3C) — UnixWare 2.01

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getcontext(2)

priocntl(2)

setjmp(3C)

sigaction(2)

sigaltstack(2)

sigprocmask(2)






       sigsetjmp(3C)                                          sigsetjmp(3C)


       NAME
             sigsetjmp, siglongjmp - a non-local goto with signal state

       SYNOPSIS
             #include <setjmp.h>
             int sigsetjmp (sigjmp_buf env, int savemask);
             void siglongjmp (sigjmp_buf env, int val);

       DESCRIPTION
             These functions are useful for dealing with errors and
             interrupts encountered in a low-level subroutine of a program.

             sigsetjmp saves the calling process's registers and stack
             environment [see sigaltstack(2)] in env (whose type,
             sigjmp_buf, is defined in the setjmp.h header file) for later
             use by siglongjmp.  If savemask is non-zero, the calling
             process's signal mask [see sigprocmask(2)] and scheduling
             parameters [see priocntl(2)] are also saved.  sigsetjmp
             returns the value 0.

             siglongjmp restores the environment saved by the last call of
             sigsetjmp with the corresponding env argument.  After
             siglongjmp is completed, program execution continues as if the
             corresponding call of sigsetjmp had just returned the value
             val.  siglongjmp cannot cause sigsetjmp to return the value
             zero.  If siglongjmp is invoked with a second argument of
             zero, sigsetjmp will return 1.  At the time of the second
             return from sigsetjmp, all external and static variables have
             values as of the time siglongjmp is called.  The values of
             register and automatic variables are undefined.  Register or
             automatic variables whose value must be relied upon must be
             declared as volatile.

             If a signal-catching function interrupts sleep and calls
             siglongjmp to restore an environment saved prior to the sleep
             call, the action associated with SIGALRM and time it is
             scheduled to be generated are unspecified.  It is also
             unspecified whether the SIGALRM signal is blocked, unless the
             process's signal mask is restored as part of the environment.

             The function siglongjmp restores the saved signal mask if and
             only if the env argument was initialized by a call to the
             sigsetjmp function with a non-zero savemask argument.





                           Copyright 1994 Novell, Inc.               Page 1













      sigsetjmp(3C)                                          sigsetjmp(3C)


      REFERENCES
            getcontext(2), priocntl(2), setjmp(3C), sigaction(2),
            sigaltstack(2), sigprocmask(2)

      NOTICES
            If siglongjmp is called even though env was never primed by a
            call to sigsetjmp, or when the last such call was in a
            function that has since returned, the behavior is undefined.








































                          Copyright 1994 Novell, Inc.               Page 2








Typewritten Software • bear@typewritten.org • Edmonds, WA 98026