对某个具体的信号如SIGINT其signal处理以最后一次使用的signal为准。无论sinal位于main还是在某个函数里面。
- #include <stdio.h>
- #include <signal.h>
- static void fun1(int signo){
- printf("fun1\n");
- }
- static void fun2(int signo){
- printf("fun2\n");
- }
- void mask(void)
- {
- sigset_t mak;
- sigemptyset(&mak);
- sigaddset(&mak, SIGINT);
- sigprocmask(SIG_SETMASK, &mak, NULL);
- signal(SIGQUIT, fun1);
- }
- int main(){
-
-
- signal(SIGQUIT, fun2);
- mask();
- sigset_t now;
- sigprocmask(0, NULL, &now);
- if(sigismember(&now, SIGINT)){
- printf("SIGINT IN\n");
- }
-
- pause();
-
- return 0;
- }
输入^\则,输出为fun1。
阅读(1816) | 评论(0) | 转发(0) |