September 25, 2007 RAISE_DEFAULT_SIGNAL 3

### NAME

raise_default_signal - raise the default signal handler

### LIBRARY

System Utilities Library (libutil, -lutil)

### SYNOPSIS

```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(3).

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 NetBSD5.0.