名前空間
変種
操作

std::basic_streambuf::pubsetbuf, std::basic_streambuf::setbuf

提供: cppreference.com
< cpp‎ | io‎ | basic streambuf
 
 
 
 
basic_streambuf<CharT, Traits>* pubsetbuf( char_type* s, std::streamsize n )
(1)
protected:
virtual basic_streambuf<CharT, Traits>* setbuf( char_type* s, std::streamsize n )
(2)
1) 最も派生したクラスの setbuf(s, n) を呼びます。
2) この関数の基底クラスのバージョンは効果を持ちません。 派生クラスは、制御された文字シーケンス (バッファ) をユーザ提供の配列で置き換えたり削除したりするために、または処理系固有の何らかの他の目的のために、この関数をオーバーライドするかもしれません。

目次

[編集] 引数

s - ユーザ提供のバッファの最初のバイトへのポインタ
n - ユーザ提供のバッファのバイト数

[編集] 戻り値

1) setbuf(s, n) の戻り値。
2) this

[編集]

読み込み用に 10k のバッファを提供します。 Linux では実際に読み込んだバイト数を観察するために strace ユーティリティを使用できます。

#include <fstream>
#include <iostream>
#include <string>
 
int main()
{
    int cnt = 0;
    std::ifstream file;
    char buf[10241];
 
    file.rdbuf()->pubsetbuf(buf, sizeof buf);
 
    file.open("/usr/share/dict/words");
 
    for (std::string line; getline(file, line);) {
        cnt++;
    }
 
    std::cout << cnt << '\n';
}


[編集] 関連項目

[仮想]
制御された文字シーケンスの配列との置き換えを試みます
(std::basic_stringbufの仮想プロテクテッドメンバ関数) [edit]
[仮想]
ユーザ提供のバッファを提供し、またはこの filebuf をバッファなしにします
(std::basic_filebufの仮想プロテクテッドメンバ関数) [edit]
[仮想]
制御された文字シーケンスの配列での置き換えを試みます
(std::strstreambufの仮想プロテクテッドメンバ関数) [edit]
ファイルストリームのためのバッファを設定します
(関数) [edit]