diff options
Diffstat (limited to 'libc/stdio/stdio.cpp')
-rw-r--r-- | libc/stdio/stdio.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/libc/stdio/stdio.cpp b/libc/stdio/stdio.cpp index 71fdd273e..d7b69dcb5 100644 --- a/libc/stdio/stdio.cpp +++ b/libc/stdio/stdio.cpp @@ -404,8 +404,7 @@ FILE* freopen(const char* file, const char* mode, FILE* fp) { } __strong_alias(freopen64, freopen); -int fclose(FILE* fp) { - CHECK_FP(fp); +static int __FILE_close(FILE* fp) { if (fp->_flags == 0) { // Already freed! errno = EBADF; @@ -440,7 +439,11 @@ int fclose(FILE* fp) { fp->_flags = 0; return r; } -__strong_alias(pclose, fclose); + +int fclose(FILE* fp) { + CHECK_FP(fp); + return __FILE_close(fp); +} int fileno_unlocked(FILE* fp) { CHECK_FP(fp); @@ -459,6 +462,7 @@ int fileno(FILE* fp) { } void clearerr_unlocked(FILE* fp) { + CHECK_FP(fp); return __sclearerr(fp); } @@ -1235,6 +1239,11 @@ FILE* popen(const char* cmd, const char* mode) { return fp; } +int pclose(FILE* fp) { + CHECK_FP(fp); + return __FILE_close(fp); +} + namespace { namespace phony { |