>>844
(断っておきますが、これはC言語の範囲を超えた話題です。)

mainからprintfを呼び出して実行中にシグナルを受け取ったとします。
そのとき、printfが何かの資源をロックしていたとします。
signal_handlerの中からprintfを呼ぶと、デッドロックが起きる可能性が
あります。

汎用の解決策は >>840 の通りです。処理系によっては、シングルスレッドの
プログラムだとprintfが資源をロックしたりしない(したがってデッドロック
が起きない)かも知れません。