Windows と UNIX で動作する C++ アプリケーション (コンソール) があります。このアプリケーションは、出力ファイルを使用して、システム コール/印刷/その他の詳細なログ ファイルを出力しました。問題は、新しい機能が追加された後に信号 11/2 を受け取る場合があることです。
シグナル 11 が発生したときに出力ファイルが適切に閉じられないため、これが発生するたびに、バグ/問題の原因を追跡するための「ほぼ完全な」情報がログ ファイルから取得されません。(部分的またはサイズがゼロです)
fprintf 行の出力ごとにフラッシュ コマンドを追加することを検討しました。Q:
- それは良い実践と見なされますか?
- fflush は Windows プラットフォームでうまく動作しますか?
- システムが予期せずクラッシュする可能性がある間、ログファイルを保持するための考え/その他の方法はありますか?