信号

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include<unistd.h>
 4 #include<string.h>
 5 #include<sys/types.h>
 6 #include<sys/wait.h>
 7 #include<sys/ipc.h>
 8 #include<sys/shm.h>
 9 #include<signal.h>
10 
11 int func1(int a,int b)
12 {
13     return a+b;
14 }
15 
16 void catch_Signal(int Sign)
17 {
18     switch(Sign)
19     {
20     case SIGINT:
21         printf("SIGINT Signal
");
22         exit(0);
23     case SIGALRM:
24         printf("SIGALRM Signal
");
25 //        alarm(5);
26         break;
27     }
28 
29 }
30 
31 void mysleep(int i)
32 {
33     alarm(i);
34     pause();
35 }
36 
37 int signal1(int signo,void (*func)(int))
38 {
39     struct sigaction act,oact;
40     act.sa_handler = func;
41     sigemptyset(&act.sa_mask);
42     act.sa_flags = 0;
43     return sigaction(signo,&act,&oact);
44 
45 }
46 
47 int main(int arg ,char *args[])
48 {
49 //    int (*p)(int,int);
50 //    p = func1;  //鍥炶皟鍑芥暟
51 //    printf("p=%d
",p(4,6));
52     printf("SIGINT = %d,SIGALRM = %d
",SIGINT,SIGALRM);
53 
54 //    signal(SIGINT,catch_Signal);
55 //    signal(SIGALRM,catch_Signal);
56     signal1(SIGINT,catch_Signal);
57     signal1(SIGALRM,catch_Signal);
58 
59     int i=0;
60     mysleep(10);
61     printf("LLLLLLLLLLLLLLLLLLLLL
");
62     while(1)
63     {
64         scanf("%d",&i);
65         printf("hello%d
",i++);
66         sleep(1);
67     }
68 
69     return EXIT_SUCCESS;
70 }
原文地址:https://www.cnblogs.com/leejxyz/p/5716434.html