Updated: 2022/Sep/29

Please read Privacy Policy. It's for your privacy.


RAISE_DEFAULT_SIGNAL(3)    Library Functions Manual    RAISE_DEFAULT_SIGNAL(3)

NAME
     raise_default_signal - raise the default signal handler

LIBRARY
     System Utilities Library (libutil, -lutil)

SYNOPSIS
     #include <util.h>

     int
     raise_default_signal(int sig);

DESCRIPTION
     The raise_default_signal() function raises the default signal handler for
     the signal sig.  This function may be used by a user-defined signal
     handler router to ensure that a parent process receives the correct
     notification of a process termination by a signal.  This can be used to
     avoid a common programming mistake when terminating a process from a
     custom SIGINT or SIGQUIT signal handler.

     The operations performed are:

           1.   Block all signals, using sigprocmask(2).

           2.   Set the signal handler for signal sig to the default signal
                handler (SIG_DFL).

           3.   raise(3) signal sig.

           4.   Unblock signal sig to deliver it.

           5.   Restore the original signal mask and handler, even if there
                was a failure.

     See signal(7) for a table of signals and default actions.

     The raise_default_signal() function should be async-signal-safe.

RETURN VALUES
     Upon successful completion, a value of 0 is returned.  Otherwise, a value
     of -1 is returned and the global variable errno is set to indicate the
     error.

ERRORS
     The raise_default_signal() function may fail and set errno for any of the
     errors specified for the functions sigemptyset(3), sigfillset(3),
     sigaddset(3), sigprocmask(2), sigaction(2), or raise(3).

SEE ALSO
     sigaction(2), sigprocmask(2), raise(3), signal(7)

HISTORY
     The raise_default_signal() function first appeared in NetBSD 5.0.

NetBSD 10.99                  September 25, 2007                  NetBSD 10.99