initial commit
[glibc.git] / signal / tst-signal.c
1 #include <signal.h>
2 #include <stdio.h>
3 #include <stdlib.h>
4 #include <string.h>
5
6 int win = 0;
7
8 static void
9 handler (int sig)
10 {
11 printf ("Received signal %d (%s).\n", sig, strsignal(sig));
12 win = 1;
13 }
14
15 int
16 main (void)
17 {
18 if (signal (SIGTERM, handler) == SIG_ERR)
19 {
20 perror ("signal: SIGTERM");
21 exit (EXIT_FAILURE);
22 }
23
24 puts ("Set handler.");
25
26 printf ("Sending myself signal %d.\n", SIGTERM);
27 fflush (stdout);
28
29 if (raise (SIGTERM) < 0)
30 {
31 perror ("raise: SIGTERM");
32 exit (EXIT_FAILURE);
33 }
34
35 if (!win)
36 {
37 puts ("Didn't get any signal. Test FAILED!");
38 exit (EXIT_FAILURE);
39 }
40
41 puts ("Got a signal. Test succeeded.");
42
43 return EXIT_SUCCESS;
44 }