C++ streambuf - pubseekoff



Description

It is used to set internal position pointer to relative position and calls the protected virtual member seekoff with the same arguments off, way and which.

Declaration

Following is the declaration for std::basic_streambuf::pubseekoff.

pos_type pubseekoff (off_type off, ios_base::seekdir way,
                     ios_base::openmode which = ios_base::in | ios_base::out);

Parameters

off − It is an offset value, relative to the way parameter.

Return Value

It always returns the new position value of the modified position pointer.

Exceptions

Basic guarantee − if an exception is thrown, the stream buffer is in a valid state.

Data races

It modifies the stream buffer object.

Example

In below example explains about std::basic_streambuf::pubseekoff.

#include <iostream>     
#include <fstream>      

int main () {
   std::fstream filestr ("sample.txt");
   if (filestr) {
      std::streambuf* pbuf = filestr.rdbuf();
      long size = pbuf->pubseekoff(0,filestr.end);
      std::cout << "The file size is " << size << " characters.\n";
      filestr.close();
   }
   return 0;
}
streambuf.htm
Advertisements