C++ ライブラリ・リファレンス

最後のフォーマットなし入力操作で抽出された文字の取得

「MT-安全」にするには、最も近いフォーマットなし入出力とそれに続く gcount 呼び出しの間に、iostream オブジェクトを排他的に使用するスレッド内で gcount 関数の呼び出しを行う必要があります。次の例を参照してください。


例 4-2 gcount の呼び出し

#include <iostream.h>	
#include <rlocks.h>
void fetch_line(istream& istr, char* line, int& linecount)
{
       stream_locker sl(istr, stream_locker::lock_defer);

       sl.lock(); // ストリーム istr をロック
       istr >> line;
       linecount = istr.gcount();
       sl.unlock(); // istr のロック解除
       ...
}

この例では、stream_locker クラスの lock メンバー関数および unlock メンバー関数がプログラム中で相互排他領域を定義しています。