私は初心者のC++開発者です。私は非常に頻繁にログファイルを書き出す必要があるアプリケーションに取り組んでおり、ログファイルが壊れていることに気付きましたアプリを実行している時間。主なシナリオは、プログラムが停止している、またはクラッシュしているように見えますが、アプリケーションがかなり「迅速で汚れた」プロジェクトから生まれたため、何かが間違っている唯一の時間ではないことに懸念しています。ファイルの破損の検出とエラー処理
最新の最新のデータを保存する必要はありません。誰かが2つのログファイルに交互に書き込みを行い、プログラムがクラッシュした場合でも、 。しかし、私は実際にこの方法を使って他のアプリケーションを見たことがないので、これは私にとって正しいにおいをしません。
この問題を処理するための「ベストプラクティス」または標準の「パターン」またはフレームワークはありますか?私はこのような何かをやってと思っています現時点では
-
- 書き込みデータの一時ファイルへ
- データをチェックは、ハッシュ
- で正しく書かれた元のファイルの名前を変更し、一時ファイルを置く。
- 何が失敗した場合、私はちょうどちょうど一時を削除することによって、ロールバックすることができ、そしてオリジナルはそのままなりその後、元
を削除します。
+1これはおそらく起こっていることです。 – luke
+1おそらく、おそらくそうです。 – neuro
はい、アプリケーションはマルチスレッドなので、問題を修正する方法を確認するために、スレッドを安全にすることから始めます。 –