X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibc.so_src%2Fstdio.c;h=840e24d4f2ddfc15f930aecd2c54e76396776c71;hb=a01b96ccf4ec884e5b894d08a819a37ea3f5f749;hp=1dde9ade69c55a9e17622d469b98dab3c9961144;hpb=479d0634670b58da044bc58149662adba0ad1d0b;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