これはおそらく愚かな質問ですが、間違っていることはわかりません。出力リダイレクションで空のファイルが生成される
./ar
のように呼び出されたときに出力を生成するプログラムを実行しています。出力は次のようになります。
-0.00781 0.02344 0.98828
-0.01172 0.02734 0.98828
-0.01562 0.02344 0.98047
-0.00781 0.02344 1.00000
-0.00391 0.02344 0.98438
毎秒新しい出力ラインが書き込まれます。
./ar > log
のようなコードを呼び出し、数秒後にctrl-c
を使用してプログラムを終了すると、ファイルlog
は空です。
私はこのコードを組み込みシステムで実行しています。システムには、実行中のパーティションである書き込み可能なパーティションがあり、rootとしてログインしているときに書き込みアクセス権を持っています。
リダイレクトすると、出力はブロックバッファで、ラインバッファではありません。ブロックが一杯になる前にCtrl-Cを押すと、何もファイルに書き込まれません。 'fflush(stdout)'を使うとすぐにファイルに書き込むことができます。 –
ありがとう、私の問題を修正した、私はすべてのprintfステートメントの前にこの行を実行しなければならなかった。 – James
'printf'がより自然なものになった後に実行します。 –