Fri, 24 Nov 2023 16:13:59 +0100
2 files changed,
34 insertions(+),
12 deletions(-)
M
src/libcedos/include/stdio.h
→
src/libcedos/include/stdio.h
@@ -26,6 +26,10 @@
size_t fread(void*, size_t, size_t, FILE*); size_t fwrite(const void*, size_t, size_t, FILE*); +int vsprintf ( char * str, const char * format, va_list args); +int vfprintf(FILE*, const char*, va_list args); +int vprintf(const char *fmt, va_list args); + int sprintf ( char * str, const char * format, ... ); int fprintf(FILE*, const char*, ...); int printf(const char *fmt, ...);
M
src/libcedos/stdio.c
→
src/libcedos/stdio.c
@@ -65,7 +65,7 @@
return i + 1; } -int sprintf ( char * str, const char * format, ... ); +int sprintf( char * str, const char * format, ... ); int fprintf(FILE*, const char*, ...); int printf(const char *fmt, ...);@@ -224,33 +224,51 @@ str[offset] = 0;
return offset; } -int printf(const char *fmt, ...) { +int vfprintf(FILE *file, const char *fmt, va_list args) { uint8_t buffer[512]; + int res = vsprintf(buffer, fmt, args); + res = fwrite(buffer, sizeof(uint8_t), res, file); + return res; +} + +int sprintf(char *str, const char *fmt, ...) { va_list args; va_start(args, fmt); - int res = vsprintf(buffer, fmt, args); + int res = vsprintf(str, fmt, args); va_end(args); - res = fwrite(buffer, sizeof(uint8_t), res, stdout); return res; } -int sprintf(char *str, const char *fmt, ...) { +int fprintf(FILE *file, const char *fmt, ...) { va_list args; va_start(args, fmt); - int res = vsprintf(str, fmt, args); + int res = vfprintf(file, fmt, args); va_end(args); return res; } -int fprintf(FILE*, const char*, ...); -FILE* fopen(const char*, const char*); +int vprintf(const char *fmt, va_list args) { + return vfprintf(stdout, fmt, args); +} -int fseek(FILE*, long, int); -long ftell(FILE*); +int printf(const char *fmt, ...) { + va_list args; -size_t fread(void*, size_t, size_t, FILE*); -size_t fwrite(const void*, size_t, size_t, FILE*);+ va_start(args, fmt); + int res = vfprintf(stdout, fmt, args); + va_end(args); + + return res; +} + +int fseek(FILE* file, long offset, int whence) { + return sc_file_lseek(file, offset, whence); +} + +long ftell(FILE* file) { + return sc_file_tell(file); +}