Message 188077 - Python tracker (original) (raw)
"When you say Python 2, I assume you mean CPython 2, right? Because - AFAICT - files got flushed only by accident, not by design."
It looks to be a feature of the standard C library, at least the GNU libc. Its libio library installs an exit handler flushing all open files. You can see it if you set a breaking on write() using gdb:
Yes, it's guaranteed by POSIX/ANSI (see man exit). I was refering to the fact that the automatic flushing of files upon exit is a mere side effect of the implementation based atop stdio stream in cpython 2. It's no guaranteed by any Python spec (and I can't really think of any platform other than C that makes such guarantee).