diff options
Diffstat (limited to 'libc/stdio/stdio_ext.cpp')
-rw-r--r-- | libc/stdio/stdio_ext.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libc/stdio/stdio_ext.cpp b/libc/stdio/stdio_ext.cpp index f273d45fe..88e59510d 100644 --- a/libc/stdio/stdio_ext.cpp +++ b/libc/stdio/stdio_ext.cpp @@ -27,6 +27,8 @@ */ #include <stdio_ext.h> + +#include <errno.h> #include <stdlib.h> #include "local.h" @@ -101,5 +103,10 @@ int ferror_unlocked(FILE* fp) { } int fileno_unlocked(FILE* fp) { - return __sfileno(fp); + int fd = fp->_file; + if (fd == -1) { + errno = EBADF; + return -1; + } + return fd; } |