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	avail-
       able.\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	avail-
       able.\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.

	  Defect reports

	  The following	behavior-changing defect reports were applied retroac-
       tively to
	  previously published C++ standards.

	    DR	  Applied to	      Behavior as published		  Cor-
       rect behavior
			     static constant members of	std::ios_base
	  LWG  375  C++98	were					  cor-
       rected
			     misspecified as members of
			     std::basic_ios
	  LWG 564 C++98	     if	was unclear how	to reposition gptr    they are
       repositioned by
			     and/or					  pptr
       seekoff()

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		  2024.06.10	 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.1.quarterly>

home | help