#include <__stdio.h> // for __FILE #include // for LIBC_LOCK, LIBC_UNLOCK #include // for EBADF, errno #include // for FILE, fileno int fileno(FILE *stream) { int fd; LIBC_LOCK(__FILE(stream)->lock); fd = __FILE(stream)->fd; LIBC_UNLOCK(__FILE(stream)->lock); if (fd < 0) { errno = EBADF; return -1; } return fd; }