C programming - standard library signal.h
The "signal.h" header file in C programming provides a way to handle signals, which are asynchronous notifications sent to a process by the operating system or another process.
The "signal.h" header file defines several functions and constants for handling signals, including:
"signal": Sets the action to be taken when a signal is received.
"raise": Sends a signal to the current process.
Constants for different types of signals, such as "SIGINT" for the interrupt signal and "SIGSEGV" for the segmentation fault signal.
A signal handler function type "typedef void (*sighandler_t)(int)" which is used to define the signature of the signal handling functions.
Here is an example of using the "signal.h" header file in a C program:
#include <stdio.h> #include <signal.h> void signal_handler(int sig) { printf("Received signal %d\n", sig); } int main() { signal(SIGINT, signal_handler); printf("Running...\n"); raise(SIGINT); printf("Done.\n"); return 0; }
In this example, the "signal.h" header file functions are used to set up a signal handler function for the interrupt signal (SIGINT) and raise a signal using the "raise" function. When the interrupt signal is raised, the "signal_handler" function is called, which prints a message indicating that the signal was received. The output of the program will be:
Running... Received signal 2 Done.
Note that the behavior of signals is implementation-dependent and can have security implications, so they should be used with caution.