| #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; | 
 | } |