mirror of git://sourceware.org/git/glibc.git
				
				
				
			
		
			
				
	
	
		
			45 lines
		
	
	
		
			709 B
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			709 B
		
	
	
	
		
			C
		
	
	
	
| #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;
 | |
| }
 |