cplusplus.com cplusplus.com
cplusplus.com   C++ : Reference : IOstream Library : ifstream : rdbuf
- -
C++
Information
Documentation
Reference
Articles
Sourcecode
Forum
Reference
C Library
IOstream Library
Strings library
STL Containers
STL Algorithms
IOstream Library
manipulators
classes:
· filebuf
· fstream
· ifstream
· ios
· iostream
· ios_base
· istream
· istringstream
· ofstream
· ostream
· ostringstream
· streambuf
· stringbuf
· stringstream
objects:
· cerr
· cin
· clog
· cout
types:
· fpos
· streamoff
· streampos
· streamsize
ifstream
· ifstream::ifstream
member functions:
· ifstream::close
· ifstream::is_open
· ifstream::open
· ifstream::rdbuf

-

ifstream::rdbuf public member function
filebuf* rdbuf ( ) const;

Get the associated filebuf object

Returns a pointer to the filebuf object associated with the stream.

Parameters

none

Return Value

A pointer to the filebuf object associated with the stream.
Notice that for any successfully constructed ifstream object this pointer is never a null pointer, even if no files have been opened or if the stream is unbuffered.

Example

// read file data using associated buffer's members
#include <iostream>
#include <fstream>
using namespace std;

int main () {
  filebuf *pbuf;
  ifstream filestr;
  long size;
  char * buffer;

  filestr.open ("test.txt");

  // get pointer to associated buffer object
  pbuf=filestr.rdbuf();

  // get file size using buffer's members
  size=pbuf->pubseekoff (0,ios::end,ios::in);
  pbuf->pubseekpos (0,ios::in);

  // allocate memory to contain file data
  buffer=new char[size];

  // get file data  
  pbuf->sgetn (buffer,size);

  filestr.close();

  // write content to stdout
  cout.write (buffer,size);

  return 0;
}

This is an elaborate way to read the contents of a file by using the associated filebuf object's members.

Basic template member declaration

( basic_ifstream<charT,traits,Allocator> )
basic_filebuf<charT,traits,Allocator> * rdbuf () const;

See also

ios::rdbuf Get/set the associated stream buffer (public member function)
filebuf File stream buffer (class)

© The C++ Resources Network, 2000-2007 - All rights reserved
Spotted an error? - contact us