std::cin, std::cerr, std::clog behaviour

Gary Hughes geh@itga.com.au
Fri Oct 24 00:12:00 GMT 2003


Hi,

I have recently upgraded from gcc 2.9.3 to gcc 3.3 and have noticed a
difference in the behaviour of these streams I was not expecting.

Under 2.95.3 writing a string such as "blah blah" to any of these streams
would result in a single call to write(). Under 3.3 this behaviour is the
same for std::cout, but std::cerr and std::clog call write() for each
character in the string.

What is the reason for this? Is it dictated by the standard or is it an
implementation issue? I assume it has something to do with buffering but it
seems very inefficient to me.

Thanks.

Gary.



More information about the Libstdc++ mailing list