#include "file.h" #include #include #include extern int __libc_fctprintf( int (*out)(char character, void *arg), void *arg, const char *format, va_list va); extern int __fputc(int c, struct __opaque_file *stream); static inline int _out_file(char character, void *arg) { FILE *fp = arg; return __fputc(character, fp); } int vprintf(const char *format, va_list arg) { __libc_file_lock(stdout); int ret = __libc_fctprintf(_out_file, stdout, format, arg); if (errno != SUCCESS) { ret = -1; } if (ferror(stdout)) { ret = -1; } __libc_file_unlock(stdout); return ret; }