6

ディスク上のファイルにデータを書き込むために write() を使用するとどうなるでしょうか。しかし、私のアプリケーションはフラッシュする前にクラッシュしました。システム障害がなければ、最終的にデータがディスクにフラッシュされることが保証されていますか?

4

1 に答える 1

5

を使用している場合write(または を使用していないfwrite場合std::ostream::write)、インプロセス バッファリングはありません。システム障害がなければ、データは遅かれ早かれ (そして通常はすぐに) ディスクに書き込まれます。

データの整合性に本当に関心がある場合は 、ファイルを開くときに、またはフラグO_DSYNCをフラグに入れることができます。O_SYNCこれを行うと、 から戻る前に、データがディスクに物理的に書き込まれていることが保証されwriteます。

于 2012-05-22T11:44:05.883 に答える