掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ofstreamでファイル書き込みエラーを検出するには? (ID:56642)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
fopen/fwrite でも同じ事が起こります。ある意味あたりまえの動作ですね。 operator << や fwrite では、即座にディスク入出力が行われるわけではなくて 内部バッファに書き込みが予約されるだけです(速度向上のため) 実際の書き込みはバッファがいっぱいになるか、または書き込みを明示した時に行われ、 そこで初めて正しく書けなかったことが検出され bad になります。 最初からディスクフルであっても同じことです。 提示の例ではデストラクタがファイルを閉じる際に bad 検出がされますが、 既に手遅れ、プログラマが検出することは不可能です。 printf() の前、 << の後に outfile.flush(); を実行すれば bad になるでしょう。 毎回 flush() してしまうと激遅になること間違いなしですので、 どこにどれだけの頻度で flush() すると良いかはプログラマのさじ加減。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.