#include <signal.h> #include <stdio.h> #include <stdlib.h> #include <string.h> int win = 0; static void handler (int sig) { printf ("Received signal %d (%s).\n", sig, strsignal(sig)); win = 1; } int main (void) { if (signal (SIGTERM, handler) == SIG_ERR) { perror ("signal: SIGTERM"); exit (EXIT_FAILURE); } puts ("Set handler."); printf ("Sending myself signal %d.\n", SIGTERM); fflush (stdout); if (raise (SIGTERM) < 0) { perror ("raise: SIGTERM"); exit (EXIT_FAILURE); } if (!win) { puts ("Didn't get any signal. Test FAILED!"); exit (EXIT_FAILURE); } puts ("Got a signal. Test succeeded."); return EXIT_SUCCESS; }