mirror of
https://github.com/RGBCube/serenity
synced 2025-05-14 08:44:58 +00:00
LibC: Flush all file streams on exit
The POSIX standard specifies the following: > If the main() function returns to its original caller, or if the > exit() function is called, all open files are closed (hence all output > streams are flushed) before program termination. This means that flushing `stdin` and `stdout` only is not enough, as the program might have pending writes in other file buffers too. Now that we support `fflush(nullptr)`, we call that in `exit()` to flush all streams. This fixes one of bash's generated headers not being written to disk.
This commit is contained in:
parent
6a6dbf5b0b
commit
a1dfa1efb2
1 changed files with 1 additions and 2 deletions
|
@ -189,8 +189,7 @@ void exit(int status)
|
|||
|
||||
extern void _fini();
|
||||
_fini();
|
||||
fflush(stdout);
|
||||
fflush(stderr);
|
||||
fflush(nullptr);
|
||||
|
||||
#ifndef _DYNAMIC_LOADER
|
||||
__pthread_key_destroy_for_current_thread();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue