mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 19:22:45 +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
	
	 Daniel Bertalan
						Daniel Bertalan