2012-10-18 12 views
8

親プロセスと子プロセスを交互にファイルに出力する単純なプログラムを作成しています。私はユーザー定義の信号を使用してこれを行うことができました。今、私はSIGINT信号を扱いたいと思っています。 ctrl-cが受信されると、親は子に終了信号を送信しなければならず、子は終了し、最後に親は終了する必要があります。子プロセスでSIGINTシグナルを無視する

私の質問は、この作業を適切に行うために、私はSIGINTシグナルを親から捕らえ、それを子供から無視する必要があります。そうですか?はいの場合、これを行う上でのヒントはありますか?

+0

あなたはこの興味深いを見つけることがあります。http://www.linuxprogrammingblog.com/all-about-linux-signalsは –

答えて

14

コール:

signal(SIGINT, SIG_IGN); 

子プロセスがSIGINT信号を無視するようになります子プロセスから。 man signal

ディスポジションがSIG_IGNに設定されている場合、信号は無視されます。

+0

[OK]を私はSIG_IGNの行動を知っているが、私はそれを無視する子とするとき、親キャッチをしたいです信号は、子供を終了させる。 – SpyrosR

+0

@SpyrosRなので、子供だけがそれを呼んでもらえますか? – hmjd

+0

はい。私は信号を捕まえ、子にSITERM信号を送るための親と、信号を無視するための子のためのものの2つの処理関数を設定しました。例えば、子供が作業中はctrl-cを押してください子ハンドル関数を呼び出しますが、SIGINTシグナルの親ハンドル関数も呼び出します。 – SpyrosR

関連する問題