### 7.2 `raise`—send a signal

Synopsis

    #include <signal.h>
    int raise(int sig);

    int _raise_r(void *reent, int sig);

Description
Send the signal sig (one of the macros from ‘`sys/signal.h`’). This interrupts your program’s normal flow of execution, and allows a signal handler (if you’ve defined one, using `signal`) to take control.

The alternate function `_raise_r` is a reentrant version. The extra argument reent is a pointer to a reentrancy structure.

Returns
The result is `0` if sig was successfully raised, `1` otherwise. However, the return value (since it depends on the normal flow of execution) may not be visible, unless the signal handler for sig terminates with a `return` or unless `SIG_IGN` is in effect for this signal.

Portability
ANSI C requires `raise`, but allows the full set of signal numbers to vary from one implementation to another.

Required OS subroutines: `getpid`, `kill`.