最終更新日時:
が更新

履歴 編集

function
<fstream>

std::basic_filebuf::sync

protected:
  virtual int sync();  // (1) C++03
  int sync() override; // (1) C++17

概要

制御対象のシーケンスとファイルを同期する(出力をフラッシュする)。

このメンバ関数はprotectedであり、std::basic_streambufpublicメンバ関数pubsync()を通して間接的に呼び出される。

効果

put領域が存在する場合、basic_filebufoverflowを呼び出して文字をファイルに書き込み、その後あたかもstd::fflush(file)を呼び出したかのようにファイルをフラッシュする。

get領域が存在する場合の効果は、処理系定義である。

戻り値

失敗した場合は-1を返す。それ以外の場合は0を返す。何を失敗とみなすかは、このクラスが定める。

バージョン

言語

  • C++98

関連項目

参照

  • LWG Issue 2473. basic_filebuf's relation to C FILE semantics
    • syncがあたかもfflush(file)を呼び出したかのようにファイルをフラッシュする、と明確化された(CのFILEにおける入出力操作の相互作用に整合させるため)
    • この修正は欠陥報告(DR)であり、C++98に遡及して適用される。seekoffにはfseekの言及があるのにsyncにはCの対応関数の言及が欠けていた規定漏れの補完であり、処理系は当初からCのFILEのセマンティクスに従って実装されていたため