Rogue Wave バナー
前へマニュアルの先頭へ目次次へ

14.3 unitbuf 書式設定フラグによる暗黙的な同期

書式設定フラグ ios_base::unitbuf で、出力ファイルの自動的な同期を行うことができます。次のように、出力演算が終わるたびに、出力ストリームがバッファをフラッシュします。

ofstream ostr("/tmp/fil");
ifstream istr("/tmp/fil");

ostr << unitbuf;                                              //1

while (some_condition)
{ ostr << " some output";                                   //2
  // process the output
  istr >> s;
  // 
}
//1 unitbuf 書式設定フラグを設定します。
//2 共有ファイル /tmp/fil に挿入するたびに、バッファが自動的にフラッシュされ、同じファイルを読み取る他のストリームでもその出力を利用することができます。

トークンが挿入されるごとにフラッシュするのは効率が悪いので、長い出力で、さらに部分的な読み取りが不必要な場合は、unitbuf フラグをオフにすることもできます。

ostr.unsetf(ios_base::unitbuf);                               //1
ostr << "  some lengthy and complicated output ";
ostr.flush().setf(ios_base::unitbuf);                         //2
//1 unitbuf フラグをオフにします。または、マニピュレータで ostr << nounitbuf; とすることもできます。
//2 バッファをフラッシュし、unitbuf フラグを再びフラッシュします。または、 ostr << flush << unitbuf; とすることもできます。

前へマニュアルの先頭へ目次次へ

Copyright (c) 1998, Rogue Wave Software, Inc.
このマニュアルに関する誤りのご指摘やご質問は、電子メールにてお送りください。


OEM リリース, 1998 年 6 月