Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
std::basic_...buf::seekpos(3) C++ Standard Libarystd::basic_...buf::seekpos(3)

NAME
       std::basic_stringbuf::seekpos - std::basic_stringbuf::seekpos

Synopsis
	  protected:

	  virtual pos_type seekpos(pos_type sp,

	  std::ios_base::openmode      which	 =     std::ios_base::in     |
       std::ios_base::out );

	  Repositions  std::basic_streambuf::gptr  and/or   std::basic_stream-
       buf::pptr, if
	  possible, to the position indicated by sp

	  Effectively	executes   seekoff(off_type(sp),   std::ios_base::beg,
       which)

Parameters
	  sp	- stream position, such	as one obtained	by seekoff() or	 seek-
       pos()
		  defines whether the input sequences, the output sequence, or
       both are
		  affected.  It	 can  be one or	a combination of the following
       constants:
	  which	-
		  Constant Explanation
		  in	   affect the input sequence
		  out	   affect the output sequence

Return value
	  sp on	success	or pos_type(off_type(-1)) on failure.

Notes
	  seekpos() is called by std::basic_streambuf::pubseekpos(), which  is
       called by the
	  single-argument versions of std::basic_istream::seekg() and
	  std::basic_ostream::seekp()

Example
       // Run this code

	#include <sstream>
	#include <iostream>

	struct mybuf : std::stringbuf
	{
	    mybuf(const	std::string& str) : std::stringbuf(str)	{}
	    pos_type seekpos(pos_type sp, std::ios_base::openmode which) {
		 std::cout  <<	"Before	seekpos(" << sp	<< "), size of the get
       area is "
			   << egptr()-eback() << " with	"
			   << egptr()-gptr() <<	" read positions available\n";
		 pos_type rc = std::stringbuf::seekpos(sp, which);
		 std::cout << "seekpos() returns "  <<	rc  <<	".\nAfter  the
       call, "
			   << "size of the get area is "
			   << egptr()-eback() << " with	"
			   << egptr()-gptr() <<	" read positions available\n";
		return rc;
	    }
	};

	int main()
	{
	    mybuf buf("12345");
	    std::iostream stream(&buf);
	    stream.seekg(2);
	}

Output:
	Before	seekpos(2),  size  of  the get area is 5 with 5	read positions
       available
	seekpos() returns 2.
	After the call,	size of	the get	area is	5 with 3 read positions	avail-
       able

See also
	  pubseekpos invokes seekpos()
		     (public	member	  function    of    std::basic_stream-
       buf<CharT,Traits>)
	  seekoff     repositions the next pointer in the input	sequence, out-
       put sequence, or
	  [virtual]  both, using relative addressing
		     (virtual protected	member function)
	  seekpos    repositions the file position, using absolute addressing
	  [virtual]  (virtual protected	member	function  of  std::basic_file-
       buf<CharT,Traits>)
	  seekpos     repositions the next pointer in the input	sequence, out-
       put sequence, or
	  [virtual]  both using	absolute addressing
		     (virtual protected	member function	of std::strstreambuf)

http://cppreference.com		  2022.07.31	 std::basic_...buf::seekpos(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::basic_stringbuf::seekpos&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help