if (signal(SIGINT, SIG_IGN) != SIG_IGN)
signal(SIGINT, sig_int);
このコードは何度か見たことがあります。そして、それは私を混乱させます。これを行うと、シグナルが現在無視されていない場合にのみ、プロセスはシグナルをキャッチします。
私の質問は:
signal(SIGINT, sig_int);
最初のシグナル関数にエラーがなければ決して実行されないと思いますよね?どのような状況で
(signal(SIGINT, SIG_IGN) != SIG_IGN)
起こりますか?