红联Linux门户
Linux帮助

信号编程问题

发布时间:2011-11-07 15:14:02来源:红联作者:专攻Linux/ARM
#include
#include
#include
void fun_ctrl_c();
int main()
{
(void) signal ( SIGINT,fun_ctrl_c);
printf("主程序:程序进入一个无限循环!\n");
while(1)
{
printf("这是一个无限循环(要退出按Ctrl+C键)!\n");
sleep(3);
}
exit(0);

}

void fun_ctrl_c()
{
printf("\t你按了Ctrl+C哦:)\n");
printf("\t信号处理函数:有什么要处理,在处理函数中编程!\n");
printf("\t此例不处理,重新恢复SIGINT信号的系统默认处理。\n");
(void) signal(SIGINT,SIG_DFL);
}

这是实现每个三秒打印出 这是一个无限循环(要退出按Ctrl+C键)!
我想问的是,这个程序里面是怎么实现识别Ctrl+C的,自定义的函数fun_ctrl_c ()似乎没有看到识别Ctrl+c的,而且这个还是识别两次Ctrl+c,第一次按是实现函数fun_ctrl_c的功能,第二次是退出程序。请问这是怎么实现的呢?
文章评论

共有 1 条评论

  1. spworks 于 2011-11-08 08:39:15发表:

    帮顶下