Is there a guarantee of stdout auto-flush before exit? How does it work?

This is accomplished by these two sections in the C++ language specification:

[basic.start.main]

A return statement in main has the effect of leaving the main function and calling exit with the return value as the argument.

and

[lib.support.start.term]

The function exit has additional behavior in this International Standard:

  • Next, all open C streams with unwritten buffered data are flushed.

Leave a Comment