X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibc.so_src%2Fstdio.c;h=840e24d4f2ddfc15f930aecd2c54e76396776c71;hb=df8ced739e79757e9c96bd8ae184f0857574c0d6;hp=1dde9ade69c55a9e17622d469b98dab3c9961144;hpb=08b35430357bd5ce6876d5d54db9f87f5d18a485;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libc.so_src/stdio.c b/Usermode/Libraries/libc.so_src/stdio.c index 1dde9ade..840e24d4 100644 --- a/Usermode/Libraries/libc.so_src/stdio.c +++ b/Usermode/Libraries/libc.so_src/stdio.c @@ -300,7 +300,7 @@ EXPORT int fprintf(FILE *fp, const char *format, ...) * \fn EXPORT size_t fwrite(void *ptr, size_t size, size_t num, FILE *fp) * \brief Write to a stream */ -EXPORT size_t fwrite(void *ptr, size_t size, size_t num, FILE *fp) +EXPORT size_t fwrite(const void *ptr, size_t size, size_t num, FILE *fp) { size_t ret; @@ -354,6 +354,33 @@ EXPORT size_t fread(void *ptr, size_t size, size_t num, FILE *fp) return ret; } +/** + * \brief Write a string to a stream (without trailing \n) + */ +EXPORT int fputs(const char *s, FILE *fp) +{ + int len = strlen(s); + return fwrite(s, 1, len, fp); +} + +/** + * \brief Read a line (and possible trailing \n into a buffer) + */ +EXPORT char *fgets(char *s, int size, FILE *fp) +{ + int ofs = 0; + char ch = '\0'; + while( ofs < size && ch != '\n' ) + { + if( fread(&ch, 1, 1, fp) != 1 ) + break; + s[ofs ++] = ch; + } + if( ofs < size ) + s[ofs] = '\0'; + return s; +} + /** * \fn EXPORT int fputc(int c, FILE *fp) * \brief Write a single character to the stream