A signal acts like an asynchronous interrupt to a process. If the process has registered a signal handler, it is executed when the signal arrives. /* Usage example * * First, compile and run this program: * $ gcc signal.c * $ ./a.out * * It will print out its pid. Use it from another terminal to send signals * $ kill -HUP * $ kill -USR1 * $ kill -ALRM * $ ^C # SIGINT * * Exit the process with SIGKILL, SIGTERM */