diff --git a/options/ansi/generic/file-io.cpp b/options/ansi/generic/file-io.cpp index dbd9bf27..c718b458 100644 --- a/options/ansi/generic/file-io.cpp +++ b/options/ansi/generic/file-io.cpp @@ -578,6 +578,15 @@ long ftell(FILE *file_base) { } int fflush_unlocked(FILE *file_base) { + if(file_base == NULL) { + // Only flush the files but do not close them. + for(auto it : mlibc::global_file_list) { + if(int e = it->flush(); e) + mlibc::infoLogger() << "mlibc warning: Failed to flush file" + << frg::endlog; + } + return 0; + } auto file = static_cast(file_base); if(file->flush()) return EOF; diff --git a/options/ansi/generic/stdlib-stubs.cpp b/options/ansi/generic/stdlib-stubs.cpp index 8db8182b..0a457fa6 100644 --- a/options/ansi/generic/stdlib-stubs.cpp +++ b/options/ansi/generic/stdlib-stubs.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include