From 7aa17202e778894e1a27a5d48fb8bcb657b4820e Mon Sep 17 00:00:00 2001 From: Jakob Kaivo Date: Sat, 15 Aug 2020 21:33:39 -0400 Subject: fclose() all open streams --- src/stdlib/exit.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/stdlib/exit.c b/src/stdlib/exit.c index 2953f3ec..18ee086d 100644 --- a/src/stdlib/exit.c +++ b/src/stdlib/exit.c @@ -1,6 +1,7 @@ #include -#include "limits.h" -#include "stddef.h" +#include +#include +#include "stdio/_stdio.h" #include "_syscall.h" #include "_stdlib.h" @@ -9,6 +10,7 @@ _Noreturn void exit(int status) { long scno = __syscall_lookup(exit); struct atexit *ae = &(__stdlib.atexit); + size_t i; /* execute all atexit() registered functions in reverse order */ while (ae) { @@ -19,7 +21,9 @@ _Noreturn void exit(int status) ae = ae->prev; } - /* TODO: close all open files */ + for (i = 0; i < FOPEN_MAX; i++) { + fclose(&(__stdio.FILES[i])); + } for (;;) { __syscall(scno, status); -- cgit v1.2.1