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

FreeBSD Manual Pages

  
 
  

home | help
std::basic_streambuf(3)	      C++ Standard Libary      std::basic_streambuf(3)

NAME
       std::basic_streambuf - std::basic_streambuf

Synopsis
	  Defined in header <streambuf>
	  template<

	  class	CharT,
	  class	Traits = std::char_traits<CharT>

	  > class basic_streambuf;

	  The  class  basic_streambuf controls input and output	to a character
       sequence. It
	  includes and provides	access to

	   1. The controlled character sequence, also called the buffer, which
       may contain
	      input sequence (also called get area) for	 buffering  the	 input
       operations and/or
	      output  sequence (also called put	area) for buffering the	output
       operations.
	   2. The associated character sequence, also called source  (for  in-
       put) or sink (for
	      output).	This  may be an	entity that is accessed	through	OS API
       (file, TCP
	      socket, serial port, other character device), or it  may	be  an
       object
	      (std::vector, array, string literal), that can be	interpreted as
       a character
	      source or	sink.

	  The I/O stream objects std::basic_istream and	std::basic_ostream, as
       well as all
	  objects  derived  from them (std::ofstream, std::stringstream, etc),
       are implemented
	  entirely in terms of std::basic_streambuf.

	  The controlled character sequence is an array	of CharT which,	at all
       times,
	  represents a subsequence, or a "window" into the associated  charac-
       ter sequence. Its
	  state	is described by	three pointers:

	   1.  The  beginning  pointer,	always points at the lowest element of
       the buffer
	   2. The next pointer,	points at the element that is the next	candi-
       date for	reading
	      or writing
	   3. The end pointer, points one past the end of the buffer.

	  A basic_streambuf object may support input (in which case the	buffer
       described by
	  the  beginning,  next,  and end pointers is called get area),	output
       (put area), or
	  input	and output simultaneously. In latter case,  six	 pointers  are
       tracked,	which may
	  all  point to	elements of the	same character array or	two individual
       arrays.

	  If the next pointer is less than the end pointer in the put area,  a
       write position
	  is available.	The next pointer can be	dereferenced and assigned to.

	  If  the next pointer is less than the	end pointer in the get area, a
       read position is
	  available. The next pointer can be dereferenced and read from.

	  If the next pointer is greater than the beginning pointer in	a  get
       area, a putback
	  position  is	available,  and	 the  next pointer may be decremented,
       dereferenced, and
	  assigned to, in order	to put a character back	into the get area.

	  The character	representation and encoding in the controlled sequence
       may be
	  different from the character representations in the  associated  se-
       quence, in which
	  case	a  std::codecvt	 locale	facet is typically used	to perform the
       conversion. Common
	  examples are UTF-8  (or  other  multibyte)  files  accessed  through
       std::wfstream
	  objects: the controlled sequence consists of wchar_t characters, but
       the associated
	  sequence consists of bytes.

	  Typical  implementation of the std::basic_streambuf base class holds
       only the	six
	  CharT* pointers and a	copy of	std::locale as data members. In	 addi-
       tion,
	  implementations  may	keep cached copies of locale facets, which are
       invalidated
	  whenever imbue() is called. The concrete buffers  such  as  std::ba-
       sic_filebuf or
	  std::basic_stringbuf are derived from	std::basic_streambuf.

	  std-streambuf.svg

	  Two convenience typedefs are provided	by the standard	library

	  Defined in header <streambuf>
	  Type	     Definition
	  streambuf  basic_streambuf<char>
	  wstreambuf basic_streambuf<wchar_t>

Member types
	  Member type Definition
	  char_type   CharT
	  traits_type  Traits;	the program is ill-formed if Traits::char_type
       is not CharT.
	  int_type    Traits::int_type
	  pos_type    Traits::pos_type
	  off_type    Traits::off_type

Member functions
	  destructor	     destructs the basic_streambuf object
	  [virtual]	     (virtual public member function)

Locales
	  pubimbue	     invokes imbue()
			     (public member function)
	  getloc	     obtains a copy of the associated locale
			     (public member function)

Positioning
	  pubsetbuf	     invokes setbuf()
			     (public member function)
	  pubseekoff	     invokes seekoff()
			     (public member function)
	  pubseekpos	     invokes seekpos()
			     (public member function)
	  pubsync	     invokes sync()
			     (public member function)

Get area
			     obtains  the  number  of  characters  immediately
       available in the	get
	  in_avail	     area
			     (public member function)
			     advances the input	sequence, then reads one char-
       acter without
	  snextc	     advancing again
			     (public member function)
	  sbumpc	      reads  one character from	the input sequence and
       advances	the
	  stossc	     sequence
	  (removed in C++17) (public member function)
			     reads one character from the input	sequence with-
       out advancing the
	  sgetc		     sequence
			     (public member function)
	  sgetn		     invokes xsgetn()
			     (public member function)

Put area
			     writes one	character to the put area and advances
       the next
	  sputc		     pointer
			     (public member function)
	  sputn		     invokes xsputn()
			     (public member function)

Putback
	  sputbackc	     puts one character	back in	the input sequence
			     (public member function)
	  sungetc	     moves the next pointer in the input sequence back
       by one
			     (public member function)

Protected member functions
	  constructor	     constructs	a basic_streambuf object
			     (protected	member function)
	  operator=	     replaces a	basic_streambuf	object
	  (C++11)	     (protected	member function)
	  swap		     swaps two basic_streambuf objects
	  (C++11)	     (protected	member function)

Locales
	  imbue		     changes the associated locale
	  [virtual]	     (virtual protected	member function)

Positioning
	  setbuf	     replaces the buffer with user-defined  array,  if
       permitted
	  [virtual]	     (virtual protected	member function)
	  seekoff	      repositions  the	next  pointer in the input se-
       quence, output
	  [virtual]	     sequence, or both,	using relative addressing
			     (virtual protected	member function)
	  seekpos	     repositions the next pointer  in  the  input  se-
       quence, output
	  [virtual]	     sequence, or both using absolute addressing
			     (virtual protected	member function)
	  sync		      synchronizes  the	 buffers  with	the associated
       character sequence
	  [virtual]	     (virtual protected	member function)

Get area
	  showmanyc	     obtains the number	of  characters	available  for
       input in	the
	  [virtual]	     associated	input sequence,	if known
			     (virtual protected	member function)
	  underflow	      reads  characters	 from the associated input se-
       quence to the get
	  [virtual]	     area
			     (virtual protected	member function)
	  uflow		     reads characters from the	associated  input  se-
       quence to the get
	  [virtual]	     area and advances the next	pointer
			     (virtual protected	member function)
	  xsgetn	     reads multiple characters from the	input sequence
	  [virtual]	     (virtual protected	member function)
	  eback		     returns a pointer to the beginning, current char-
       acter and the end
	  gptr		     of	the get	area
	  egptr		     (protected	member function)
	  gbump		     advances the next pointer in the input sequence
			     (protected	member function)
			     repositions the beginning,	next, and end pointers
       of the input
	  setg		     sequence
			     (protected	member function)

Put area
	  xsputn	     writes multiple characters	to the output sequence
	  [virtual]	     (virtual protected	member function)
	  overflow	      writes  characters  to the associated output se-
       quence from the put
	  [virtual]	     area
			     (virtual protected	member function)
	  pbase		     returns a pointer to the beginning, current char-
       acter and the end
	  pptr		     of	the put	area
	  epptr		     (protected	member function)
	  pbump		     advances the next pointer of the output sequence
			     (protected	member function)
			     repositions the beginning,	next, and end pointers
       of the output
	  setp		     sequence
			     (protected	member function)

Putback
	  pbackfail	     puts a character back into	 the  input  sequence,
       possibly	modifying
	  [virtual]	     the input sequence
			     (virtual protected	member function)

See also
	       object  type, capable of	holding	all information	needed to con-
       trol a C	I/O
	  FILE stream
	       (typedef)

http://cppreference.com		  2022.07.31	       std::basic_streambuf(3)

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

home | help