我被要求编写一个程序,该程序将忽略SIGINT
信号并打印一条消息,说它已被忽略。这是我在参考signal
和sigaction
的手册页后提出的。
//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);
但我很困惑,当信号被忽略时,我将如何打印信息。另一个选择是定义我自己的信号处理函数,但那不会忽略它,是吗?
答案 0 :(得分:1)
如果这是一个家庭作业,我猜这个请求是捕获信号并在信号处理程序中打印一条消息。 SIGINT的默认操作是终止进程,因此我猜测'ignore'意味着不退出...而不是SIG_IGN。