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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::basic_istream::sync	- std::basic_istream::sync

Synopsis
	  int sync();

	  Synchronizes the input buffer	with the associated data source.

	  Behaves as UnformattedInputFunction, except that gcount() is not af-
       fected. After
	  constructing and checking the	sentry object,

	  if rdbuf() is	a null pointer,	returns	-1

	  Otherwise,  calls  rdbuf()->pubsync().  If that function returns -1,
       calls
	  setstate(badbit) and returns -1. Otherwise, returns 0.

Parameters
	  (none)

Return value
	  0 on success,	-1 on failure or if the	stream does not	 support  this
       operation
	  (is unbuffered).

Notes
	  As  with readsome(), it is implementation-defined whether this func-
       tion does anything
	  with library-supplied	streams. The intent is typically for the  next
       read operation
	  to pick up any changes that may have been made to the	associated in-
       put sequence
	  after	 the  stream buffer last filled	its get	area. To achieve that,
       sync() may empty
	  the get area,	or it may refill it, or	it may do nothing.  A  notable
       exception is
	  Visual  Studio,  where this operation	discards the unprocessed input
       when called with
	  a standard input stream.

Example
	  Demonstrates the use of input	stream sync() with file	input, as  im-
       plemented on some
	  platforms.

       // Run this code

	#include <iostream>
	#include <fstream>

	void file_abc()
	{
	    std::ofstream f("test.txt");
	    f << "abc\n";
	}

	void file_123()
	{
	    std::ofstream f("test.txt");
	    f << "123\n";
	}

	int main()
	{
	    file_abc();	// file	now contains "abc"
	    std::ifstream f("test.txt");
	    std::cout << "Reading from the file\n";
	    char c;
	    f >> c; std::cout << c;
	    file_123();	// file	now contains "123"
	    f >> c; std::cout << c;
	    f >> c; std::cout << c << '\n';
	    f.close();

	    file_abc();	// file	now contains "abc"
	    f.open("test.txt");
	    std::cout << "Reading from the file, with sync()\n";
	    f >> c; std::cout << c;
	    file_123();	// file	now contains "123"
	    f.sync();
	    f >> c; std::cout << c;
	    f >> c; std::cout << c << '\n';
	}

Possible output:
	Reading	from the file
	abc
	Reading	from the file, with sync()
	a23

See also
	  sync	    synchronizes the buffers with the associated character se-
       quence
	  [virtual]  (virtual  protected member	function of std::basic_stream-
       buf<CharT,Traits>)
	  flush	    synchronizes with the underlying storage device
		    (public	member	   function	of	std::basic_os-
       tream<CharT,Traits>)

http://cppreference.com		  2022.07.31	   std::basic_istream::sync(3)

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

home | help