Oracle Solaris Studio 12.4 Man Pages

印刷ビューの終了

更新: January 2015
 
 

stdiobuf(3CC4)

名前

stdiobuf - C 標準入出力用のバッファークラスとストリームクラス

形式

 
#include <stdiostream.h> // <iostream.h> と <stdio.h> を取り込む
class stdiobuf : public streambuf {
public:
     stdiobuf(FILE*);
     FILE*     stdiofile();
};
class stdiostream : public ios {
public:
     stdiostream(FILE*);
     stdiobuf* rdbuf();
};

説明

stdiobuf クラスは、文字の入力元または出力先である実際のファイルへの中間ファイルとして、C の標準入出力 FILE を使用するように streambuf を特殊化したものです。streambuf の基本操作については、sbufprot(3CC4) および sbufpub(3CC4) で説明しています。入力、出力、およびシーク操作は、関連付けられた FILE への変更に反映されます。シーク関数は、たとえば fseek() に関して実装されます。

stdiostream は、C の標準入出力 FILE への C++ のインタフェースを提供します。このクラスは、そのバッファーとして stdiobuf を持っています。これは、iostreams の完全な実装ではなく、バッファークラスと ios クラスの機能のみ備えています。C++ の I/O は、C の標準入出力 getc() および putc() 関数の文字単位の呼び出しを介して行われます。C のアクセスと C++ のアクセスの同期を中断させることになるため、通常のバッファリングは行われません。

これらのクラスのどちらかを使用する唯一の理由は、C の標準入出力コードと、C++ の iostream に似たコードを同じファイルで混在させる方法を提供するためです。新しいコードには、はるかに効率的な filebuffstream を使用することをお勧めします。

stdiobuf 関数

stdiobuf(fp)

fp が指す FILE 構造に接続された stdiobuf を構築します。

FILE* fp = siobuf.stdiofile()

siobuf に関連付けられた FILE 構造へのポインタを返します。

stdiostream 関数

stdiostream(fp)

fp が指す FILE 構造に接続された stdiostream を構築します。

stdiobuf* sbp = siostr.rdbuf()

siostr に関連付けられた stdiobuf へのポインタを返します。これは ios::rdbuf() と同じですが、戻り型が具体的に stdiobuf になります。

関連項目

ios (3CC4) , ios.intro (3CC4) , sbufprot (3CC4) , sbufpub (3CC4) , stdio (3C)

C++ ライブラリリファレンス』第 3 章「従来型の iostream ライブラリ」