qfedu-linux-advanced-level/day3/t21.c

47 lines
1.0 KiB
C
Raw Normal View History

2023-08-17 09:20:18 +08:00
#define _XOPEN_SOURCE 700
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <signal.h>
int main(int argc, char const *argv[])
{
// 定义一个信号集
sigset_t set;
// 所有信号填充到信号集
// sigfillset(&set);
// printf("SIGINT in set ? %d\n", sigismember(&set, SIGINT));
// 清空set集
sigemptyset(&set);
printf("SIGINT in set ? %d\n", sigismember(&set, SIGINT));
// 将SIGINT添加到set集合中 (Ctrl+C触发中断信号终止进程)
sigaddset(&set, SIGINT);
// 将SIGTSTP添加到set集和中 (终端停止信号)
sigaddset(&set, SIGTSTP);
if (sigismember(&set, SIGINT))
{
printf("SIGINT是在set集合中\n");
}
else
{
printf("SIGINT不在set集合中\n");
}
// 将SIGINT从集合中删除
sigdelset(&set, SIGINT);
if (sigismember(&set, SIGINT))
{
printf("SIGINT是在set集合中\n");
}
else
{
printf("SIGINT不在set集合中\n");
}
return 0;
}