0

私のプログラムは数時間後にファイルへの書き込みを続けることができず、それと可能性のある repoen ファイルを検出できるかどうか、または単に新しいファイルを開始できるかどうかを確認したいと考えています。fail() が true かどうかを確認する必要があります。そうであれば、ファイルを repoen しますか?

4

1 に答える 1

0

操作が成功したかどうかにかかわらず、std::ofstream から特定のエラー コードを取得することはできません。そのため、(おそらく) 特定のエラー コードを探す必要がある場合は、プラットフォーム固有のインターフェイスにフォールバックする必要があります。

ただし、できること、またはすべきことは、operator<<()、std::ofstream::write()、および std::ofstream::flush() からの戻り値を確認することです。たとえば、次のようになります。

std::ofstream of("...");
if (! (of << data))
{
   retryOpenfile();
   return;
}

書き込み操作が失敗した場合は、ファイルを開くことを再試行し、可能であれば続行できます。

于 2012-10-04T20:19:13.460 に答える