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:
- Block all signals, using
sigprocmask(2).
- Set the signal handler for signal
sig to the default signal handler
(
SIG_DFL
).
- raise(3)
signal sig.
- Unblock signal sig to deliver
it.
- 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.