add chdir
[snitchaser:mainline.git] / src / tests / test_sigaction.c
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <signal.h>
4 #include <assert.h>
5
6 static void
7 handler(int num)
8 {
9         printf("signal %d raised\n", num);
10         return;
11 }
12
13 int main()
14 {
15         struct sigaction act, oact;
16         act.sa_handler = handler;
17         act.sa_flags = SA_RESTART;
18         act.sa_restorer = NULL;
19         sigfillset(&act.sa_mask);
20         sigaddset(&act.sa_mask, SIGINT);
21
22         int err = sigaction(SIGRTMIN + 3, &act, &oact);
23
24         assert(err == 0);
25
26         printf("oact.sa_handler=%p\n", oact.sa_handler);
27         printf("oact.sa_flags=0x%x\n", oact.sa_flags);
28         printf("oact.sa_restorer=%p\n", oact.sa_restorer);
29         int * tmp = (void*)(&oact.sa_mask);
30         printf("oact.sa_mask[0]=0x%x\n", tmp[0]);
31         printf("oact.sa_mask[1]=0x%x\n", tmp[1]);
32
33         printf("\n");
34         err = sigaction(SIGRTMIN + 3, NULL, &oact);
35         assert(err == 0);
36
37         printf("oact.sa_handler=%p\n", oact.sa_handler);
38         printf("oact.sa_flags=0x%x\n", oact.sa_flags);
39         printf("oact.sa_restorer=%p\n", oact.sa_restorer);
40         tmp = (void*)(&oact.sa_mask);
41         printf("oact.sa_mask[0]=0x%x\n", tmp[0]);
42         printf("oact.sa_mask[1]=0x%x\n", tmp[1]);
43         return 0;
44 }
45
46 // vim:ts=4:sw=4
47