Linux で signal + マルチスレッド、というとハンドラであれこれしようとすると、これはもう悪夢のように大変でひとつ signal 処理用スレッドを用意するのが定石のようです。 さてはて、そんなことで FreeBSD もそういうコードを書いて fork した子供を回収してやろうとしたところ、全く動いていません… orz これはどうしたんだろう??と調べた結果 空の signal handler を signal でしこんでやると動きだすことがわかりました。 はてさて、これはカーネルにどんな実装の差があるのでしょうか? そして、他のBSDではどうなっているのでしょうか? これが今回の疑問です。 実験 ひとまずこんなコードを使って引数に 0-3 を渡して実験します。中身はこんな感じのプログラムです。 #include <stdio.h> #include <signal.h> #in