#include "file.h" #include extern int __fputc(int c, struct __opaque_file *stream); int puts(const char *restrict str) { struct __opaque_file *stream = stdout; __libc_file_lock(stream); if (stream->f_flags & (FILE_EOF | FILE_ERR)) { __libc_file_unlock(stream); return EOF; } size_t i = 0; int err = 0; for (i = 0; str[i]; i++) { err = __fputc(str[i], stream); if (err < 0) { break; } } if (err >= 0) { err = __fputc('\n', stream); } __libc_file_unlock(stream); if (i > 0) { return i; } return err; }