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

FreeBSD Manual Pages

  
 
  

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

NAME
       std::basic_ostream::flush - std::basic_ostream::flush

Synopsis
	  basic_ostream& flush();

	  Writes uncommitted changes to	the underlying output sequence.

	  If rdbuf() is	a null pointer,	does nothing

	  Otherwise,  behaves  as  an UnformattedOutputFunction	(since C++11).
       After constructing
	  and checking the sentry object,  calls  rdbuf()->pubsync().  If  the
       call returns -1,
	  calls	setstate(badbit).

Parameters
	  (none)

Return value
	  *this

Exceptions
	  May throw std::ios_base::failure if (exceptions() & badbit) != 0.

Example
       // Run this code

	#include <thread>
	#include <iostream>
	#include <chrono>
	using namespace	std::chrono_literals;

	void f()
	{
	    std::cout << "Output from thread...	";
	    for	(int i{1}; i !=	10; ++i) {
		std::this_thread::sleep_for(250ms);
		std::cout << i << ' ';
		// output three	numbers	at once;
		// the effect is observable only in real-time
		if (0 == (i % 3)) {
		    std::cout.flush();
		}
	    }
	    std::cout << std::endl; // flushes as well
	}

	int main()
	{
	    std::thread	tr{f};
	    std::this_thread::sleep_for(150ms);
	    std::clog << "Output from main\n";
	    tr.join();
	}

Output:
	Output from main
	Output from thread... 1	2 3 4 5	6 7 8 9

See also
	  pubsync   invokes sync()
		    (public	member	  function    of    std::basic_stream-
       buf<CharT,Traits>)
	  sync	    synchronizes the buffers with the associated character se-
       quence
	  [virtual] (virtual protected member function	of  std::basic_stream-
       buf<CharT,Traits>)
	  flush	    flushes the	output stream
		    (function template)
	  endl	    outputs '\n' and flushes the output	stream
		    (function template)
	  sync	    synchronizes with the underlying storage device
		    (public	  member       function	      of      std::ba-
       sic_istream<CharT,Traits>)

http://cppreference.com		  2022.07.31	  std::basic_ostream::flush(3)

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

home | help