## 23.3 ロックの場所

ストリームのロックの設定と解除は、basic_ios、basic_istream、basic_ostream、basic_ifstream、basic_ofstream, basic_istringstream、basic_ostringstream、strstream の公開メンバー関数で行われます。すなわち、これらのクラスの公開メンバー関数に対する呼び出しは保護されていることになります。

ストリームバッファのロックは、basic_istream と basic_ostream にある監視オブジェクトのコンストラクタで設定され、デストラクタで解除されます。メンバー関数に対するストリームバッファの呼び出しは保護されていません。関数を呼び出す前に、バッファを明示的にロックし、関数の結果が返った後にロックを解除してください。

ストリームバッファのロックは、basic_streambuf で得られるメンバー関数 _`RW_lock_buffer()` を明示的に呼び出して設定します。ロックを解除するには `_RW_release_buffer()` を呼び出します。前述のように、ロックマニピュレータとロック解除マニピュレータを使用することもできます。以上の関数は、標準 C++ ライブラリの定義に対する拡張機能として用意されているものですが、`std` 名前空間にあります。

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

OEM リリース, 1998 年 6 月