sigaction 、 sigemptyset作用
在代码运行过程中,当程序收到终止信号时,立刻终止程序也许会得到我们不理想的结果。我们可以在接收到终止信号时让程序先做一些收尾的工作,再终止。sigaction函数可以很好地帮助我们实现这个功能。
代码:
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
// 捕捉到信号后执行的函数
void function(){
printf("handle capture signal");
// 退出程序
exit(0);
}
int main(){
struct sigaction act;
// 清空信号集,保证所有信号都可以接收
sigemptyset(&act.sa_mask);
// 捕捉到信号后执行function函数
act.sa_handler=function;
act.sa_flags=0;
// SIGINT表示捕捉终止信号(CTRL+C)信号
sigaction(SIGINT, &act, 0);
}
作者留言:有什么错误或者改进的,欢迎大家指正,提出建议,一起交流。