#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
static void signal_handle(int sign)
{
printf(“Test:System signal(%d) received,exit \n”,sign);
exit(0);
}
void signal_oact(int sign)
{
printf(“Test:in signal_oact”);
}
void signal_set()
{
struct sigaction act,old_act;
//act
act.sa_handler = signal_handle;
sigemptyset(&act.sa_mask);
act.sa_flags = 0;
//oact
old_act.sa_handler = signal_oact ;
//
if(sigaction(SIGHUP,&act,&old_act) <0)
{
printf(“FATAL errorfor sigaction in function signal_set \n”);
exit(-1);
}
sigaction(SIGSEGV,&act,NULL);
sigaction(SIGINT,&act,&old_act);
sigaction(SIGTERM,&act,NULL);
sigaction(SIGQUIT,&act,NULL);
return;
}
int main()
{
signal_set();
while(1)
{
printf(“test:waitsignal\n”);
sleep(1);
}
return 0;
}
运行后,执行ctrl+c命令,产生一个SIGINT信号,程序会执行 signal_handle函数
SIGINT信号,程序终止(interrupt)信号,在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/119947.html