シグナルハンドラからprintf()はまずいです
http://d.hatena.ne.jp/XuHuang/20070916/1189924551
トラックバックは余りしないんだけど、気になったので。
もし知っているんだったらすいません。
printf()関数は非同期シグナルセーフでは無いです。
シグナルハンドラからprintf()はまずいと思います。
まあ自分もテスト程度の一時的な場合は使うけど、最終的にはコメントアウトするよ。
*実際はデバッグやテスト程度ではprintf()でのバグは見たことが無いけどね。
*いつも思うんだけど非同期シグナルセーフ関数少なすぎ。
非同期シグナルセーフ関数の一覧は以下にあります。
http://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html#tag_02_04_03
MANにもあった
http://linux.die.net/man/2/signal
細かい話は以下でまとめられています。
http://d.hatena.ne.jp/yupo5656/20040712/p2
まじめに考えるんだったらwrite()でstdoutに書けばいいのかな?
printf()だって結局はstdoutにwrite()しているだけだし。
追記
printf()以外の処理も必要だったら、セルフパイプと言う手もありかも