`

防止pause和alrm产生竞争

阅读更多
  1 #include<stdio.h>
  2 #include<stdlib.h>
  3 #include<unistd.h>
  4 #include<signal.h>
  5 #include<setjmp.h>
  6 static jmp_buf env_alrm;
  7
  8
  9 void alarm_signal(int a)
10 {
11         longjmp(env_alrm,1);
12
13 }
14
15 int main()
16 {
17
18         if(signal(SIGALRM,alarm_signal) == SIG_ERR)
19         {
20                 printf("has error\n");
21                 return 1;
22         }
23
24         if(setjmp(env_alrm)==0)
25         {
26                 alarm(5);
27                 pause();
28         }
29
30
31         printf("--------over---------\n");
32         return 0;
33
34
35
36
37  }
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics