protected:
virtual int sync(); // (1) C++03
int sync() override; // (1) C++17
概要
制御対象のシーケンスとファイルを同期する(出力をフラッシュする)。
このメンバ関数はprotectedであり、std::basic_streambufのpublicメンバ関数pubsync()を通して間接的に呼び出される。
効果
put領域が存在する場合、basic_filebufのoverflowを呼び出して文字をファイルに書き込み、その後あたかもstd::fflush(file)を呼び出したかのようにファイルをフラッシュする。
get領域が存在する場合の効果は、処理系定義である。
戻り値
失敗した場合は-1を返す。それ以外の場合は0を返す。何を失敗とみなすかは、このクラスが定める。
バージョン
言語
- C++98
関連項目
参照
- LWG Issue 2473.
basic_filebuf's relation to CFILEsemanticssyncがあたかもfflush(file)を呼び出したかのようにファイルをフラッシュする、と明確化された(CのFILEにおける入出力操作の相互作用に整合させるため)- この修正は欠陥報告(DR)であり、C++98に遡及して適用される。
seekoffにはfseekの言及があるのにsyncにはCの対応関数の言及が欠けていた規定漏れの補完であり、処理系は当初からCのFILEのセマンティクスに従って実装されていたため