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

FreeBSD Manual Pages

  
 
  

home | help
std::ios_ba..._with_stdio(3)  C++ Standard Libary std::ios_ba..._with_stdio(3)

NAME
       std::ios_base::sync_with_stdio -	std::ios_base::sync_with_stdio

Synopsis
	  static bool sync_with_stdio( bool sync = true	);

	  Sets	whether	the standard C++ streams are synchronized to the stan-
       dard C streams
	  after	each input/output operation.

	  The standard C++ streams are	the  following:	 std::cin,  std::cout,
       std::cerr,
	  std::clog, std::wcin,	std::wcout, std::wcerr and std::wclog

	  The standard C streams are the following: stdin, stdout and stderr

	  For  a  standard  stream  str, synchronized with the C stream	f, the
       following pairs of
	  functions have identical effect:

	  1) std::fputc(f, c) and str.rdbuf()->sputc(c)
	  2) std::fgetc(f) and str.rdbuf()->sbumpc()
	  3) std::ungetc(c, f) and str.rdbuf()->sputbackc(c)

	  In practice, this means that the synchronized	C++  streams  are  un-
       buffered, and each
	  I/O  operation  on a C++ stream is immediately applied to the	corre-
       sponding	C stream's
	  buffer. This makes it	possible to freely mix C++ and C I/O.

	  In addition, synchronized C++	streams	are guaranteed to  be  thread-
       safe (individual
	  characters  output from multiple threads may interleave, but no data
       races occur)

	  If the synchronization is turned off,	the C++	standard  streams  are
       allowed to buffer
	  their	 I/O  independently,  which may	be considerably	faster in some
       cases.

	  By default, all eight	standard C++  streams  are  synchronized  with
       their respective	C
	  streams.

	  If  this  function  is called	after I/O has occurred on the standard
       stream, the
	  behavior is implementation-defined: implementations  range  from  no
       effect to
	  destroying the read buffer.

Parameters
	  sync - the new synchronization setting

Return value
	  synchronization state	before the call	to the function

Example
       // Run this code

	#include <iostream>
	#include <cstdio>

	int main()
	{
	    std::ios::sync_with_stdio(false);
	    std::cout << "a\n";
	    std::printf("b\n");
	    std::cout << "c\n";
	}

Possible output:
	b
	a
	c

See also
	  cout	writes to the standard C output	stream stdout
	  wcout	(global	object)
	  cerr	writes to the standard C error stream stderr, unbuffered
	  wcerr	(global	object)
	  clog	writes to the standard C error stream stderr
	  wclog	(global	object)

http://cppreference.com		  2022.07.31	  std::ios_ba..._with_stdio(3)

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

home | help