📄 p8-11.c
字号:
#include <signal.h>#include <stddef.h>#include <stdlib.h>#include <stdio.h>#include "err_exit.h"int main(void){ sigset_t base_mask, waiting_mask, oldmask; int sig; /* 当进行其它处理时,阻塞用户的中断. */ sigfillset (&base_mask); sigaddset (&base_mask, SIGQUIT); sigaddset (&base_mask, SIGINT); if (sigprocmask (SIG_BLOCK, &base_mask, &oldmask)<0 ) err_exit("SIG_BLOCK error"); printf(" I can't stop to response signals. Please wait moment.\n"); sleep(10); /* 过一会儿后,查看是否有悬挂信号. */ printf("I am free now. Let me see if there is any pending signals.\n"); sigpending (&waiting_mask); for ( sig=1;sig<NSIG;sig++) if (sigismember (&waiting_mask, sig)){ psignal(sig,"there is a pending signal" ); /* 对该信号做出回应... */ } /* 恢复信号屏蔽,这将放开SIGINT和SIGTSTP */ if (sigprocmask(SIG_SETMASK,&oldmask,NULL)<0) err_exit("SIG_SETMASK error"); printf("Ther is no suspending signals. BYE!\n"); exit(EXIT_SUCCESS);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -