📄 test10_5.txt
字号:
#include <stdio.h>
#include <signal.h>
#include <errno.h>
void checkmask(void);
int main(void)
{
char buffer[100];
sigset_t blockset, sigset;
int errno_backup;
errno_backup=errno;
sigemptyset(&blockset);
sigaddset(&blockset,SIGTSTP);
sigaddset(&blockset,SIGINT);
sigprocmask(SIG_SETMASK,&blockset,NULL);
checkmask();
printf("press any key to continue");
getchar();
sigaddset(&blockset,SIGTERM);
sigprocmask(SIG_BLOCK,&blockset,NULL);
checkmask();
printf("press any key to continue");
getchar();
sigdelset(&blockset,SIGINT);
sigprocmask(SIG_UNBLOCK,&blockset,NULL);
checkmask();
printf("press any key to continue");
getchar();
}
void checkmask(void)
{
if(sigprocmask(0,NULL,&sigset)<0)
{
printf("Sigprocmask error");
errno=errno_backup;
exit(0);
}
printf("signal mask:");
if(sigismember(&sigset,SIGINT)
printf("SIGint");
if(sigismember(&sigset,SIGTSTP)
printf("SIGTSTP");
if(sigismember(&sigset,SIGTERM)
printf("SIGTERM");
printf("\n");
errno=errno_backup;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -