
A signal is an interrupt that is used to notify a process that an event has occurred. That process can then respond to that event accordingly. ISO/IEC 9899-1999 C provides functions for sending and handling signals within a C program.
Signals can be delivered by calling the raise()
function, which is specified as:
int raise(int sig);
Signals are handled by a process by registering a signal handler using the signal()
function, which is specified as:
void (*signal(int sig, void (*func)(int)))(int);
There is also a POSIX implementation, that offers more control over how signals are processed.
Improper handling of signals can lead to security vulnerabilities. The following rules and recommendations are designed to reduce the common errors associated with signal handling.