Loading tools/include/nolibc/stdio.h +28 −7 Original line number Diff line number Diff line Loading @@ -84,12 +84,14 @@ int putchar(int c) } /* puts(), fputs(). Note that puts() emits '\n' but not fputs(). */ /* fwrite(), puts(), fputs(). Note that puts() emits '\n' but not fputs(). */ /* internal fwrite()-like function which only takes a size and returns 0 on * success or EOF on error. It automatically retries on short writes. */ static __attribute__((unused)) int fputs(const char *s, FILE *stream) int _fwrite(const void *buf, size_t size, FILE *stream) { size_t len = strlen(s); ssize_t ret; int fd; Loading @@ -98,16 +100,35 @@ int fputs(const char *s, FILE *stream) fd = 3 + (long)stream; while (len > 0) { ret = write(fd, s, len); while (size) { ret = write(fd, buf, size); if (ret <= 0) return EOF; s += ret; len -= ret; size -= ret; buf += ret; } return 0; } static __attribute__((unused)) size_t fwrite(const void *s, size_t size, size_t nmemb, FILE *stream) { size_t written; for (written = 0; written < nmemb; written++) { if (_fwrite(s, size, stream) != 0) break; s += size; } return written; } static __attribute__((unused)) int fputs(const char *s, FILE *stream) { return _fwrite(s, strlen(s), stream); } static __attribute__((unused)) int puts(const char *s) { Loading Loading
tools/include/nolibc/stdio.h +28 −7 Original line number Diff line number Diff line Loading @@ -84,12 +84,14 @@ int putchar(int c) } /* puts(), fputs(). Note that puts() emits '\n' but not fputs(). */ /* fwrite(), puts(), fputs(). Note that puts() emits '\n' but not fputs(). */ /* internal fwrite()-like function which only takes a size and returns 0 on * success or EOF on error. It automatically retries on short writes. */ static __attribute__((unused)) int fputs(const char *s, FILE *stream) int _fwrite(const void *buf, size_t size, FILE *stream) { size_t len = strlen(s); ssize_t ret; int fd; Loading @@ -98,16 +100,35 @@ int fputs(const char *s, FILE *stream) fd = 3 + (long)stream; while (len > 0) { ret = write(fd, s, len); while (size) { ret = write(fd, buf, size); if (ret <= 0) return EOF; s += ret; len -= ret; size -= ret; buf += ret; } return 0; } static __attribute__((unused)) size_t fwrite(const void *s, size_t size, size_t nmemb, FILE *stream) { size_t written; for (written = 0; written < nmemb; written++) { if (_fwrite(s, size, stream) != 0) break; s += size; } return written; } static __attribute__((unused)) int fputs(const char *s, FILE *stream) { return _fwrite(s, strlen(s), stream); } static __attribute__((unused)) int puts(const char *s) { Loading