Reference

public member function
<fstream>

std::basic_ifstream::rdbuf

basic_filebuf<char_type,traits_type>* rdbuf() const;
Get stream buffer
Returns a pointer to the internal basic_filebuf object.

Notice however, that this is not necessarily the same as the currently associated stream buffer (returned by basic_ios::rdbuf ).

Parameters

none

Return Value

A pointer to the internal basic_filebuf object.
char_type and traits_type are member types defined as aliases of the class template parameters (see basic_ifstream types).

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
// read file data using associated buffer's members
#include <iostream> // std::cout
#include <fstream> // std::filebuf, std::ifstream
int main () {
 std::ifstream ifs ("test.txt", std::ifstream::binary);
 // get pointer to associated buffer object
 std::filebuf* pbuf = ifs.rdbuf();
 // get file size using buffer's members
 std::size_t size = pbuf->pubseekoff (0,ifs.end,ifs.in);
 pbuf->pubseekpos (0,ifs.in);
 // allocate memory to contain file data
 char* buffer=new char[size];
 // get file data
 pbuf->sgetn (buffer,size);
 ifs.close();
 // write content to stdout
 std::cout.write (buffer,size);
 delete[] buffer;
 return 0;
}

Data races

Accesses the stream object.
Concurrent access to the same stream object may cause data races.

Exception safety

Strong guarantee: if an exception is thrown, there are no changes in the stream buffer.

See also

basic_filebuf
File stream buffer (class template)
basic_ios::rdbuf
Get/set stream buffer (public member function)

AltStyle によって変換されたページ (->オリジナル) /