忽略SIGINT信号时打印字符串

时间:2013-10-24 08:56:23

标签: c unix signals posix sigint

我被要求编写一个程序,该程序将忽略SIGINT信号并打印一条消息,说它已被忽略。这是我在参考signalsigaction的手册页后提出的。

    //set struct action to ignore signal
    struct sigaction action;    
    action.sa_handler=SIG_IGN;//handler set to ignore the signal
    action.sa_flags=0;
    //registeration 
    sigaction(SIGINT,&action,0);

但我很困惑,当信号被忽略时,我将如何打印信息。另一个选择是定义我自己的信号处理函数,但那不会忽略它,是吗?

1 个答案:

答案 0 :(得分:1)

如果这是一个家庭作业,我猜这个请求是捕获信号并在信号处理程序中打印一条消息。 SIGINT的默认操作是终止进程,因此我猜测'ignore'意味着不退出...而不是SIG_IGN。