#include <unistd.h>
#include <signal.h>
#include <stdio.h>
void sig_alrm(int signo) //自定义信号处理函数
{
printf("Two seconds passed\n");
}
int main(void)
{
struct sigaction newact, oldact; //信号处理的新旧结构体
newact.sa_handler = sig_alrm; //设置自定义处理函数
sigemptyset(&newact.sa_mask); //清空需要额外屏蔽的信号
newact.sa_flags = 0;
sigaction(SIGALRM, &newact, &oldact); //注册新的信号处理结构体并保存默认处理
while(1){
alarm(1); //设定时钟信号,1秒后向本程序发送SIGALRM信号
pause();
alarm(0); //取消闹钟
}
sigaction(SIGALRM, &oldact, NULL); //重置处理结构体
return 0;
}
自定义信号处理函数实现静默捕获动作
最新推荐文章于 2024-03-14 21:44:06 发布