Compare commits

...

1 Commits

Author SHA1 Message Date
085d2895e8
libc: Implement setbuf(), setbuffer(), and setlinebuf()
All checks were successful
continuous-integration/drone/pr Build is passing
continuous-integration/drone/push Build is passing
These are all simple wrappers around setvbuf().
2023-07-22 11:36:20 +02:00
2 changed files with 24 additions and 2 deletions

View File

@ -132,8 +132,6 @@ extern "C"
/* Clear the error and end-of-file indicators in stream. */
void clearerr(FILE* stream);
void setbuf(FILE*, char*);
/* Write formatted output to a file. */
int fprintf(FILE* stream, const char* format, ...);
@ -191,6 +189,15 @@ extern "C"
/* Change a file's buffering mode and internal buffer. */
int setvbuf(FILE* stream, char* buf, int mode, size_t size);
/* Change a file's internal buffer. */
void setbuf(FILE* stream, char* buf);
/* Change a file's internal buffer. */
void setbuffer(FILE* stream, char* buf, size_t size);
/* Change a file's buffering mode to line buffered. */
void setlinebuf(FILE* stream);
#ifdef __cplusplus
}
#endif

View File

@ -729,4 +729,19 @@ extern "C"
return 0;
}
void setbuf(FILE* stream, char* buf)
{
setvbuf(stream, buf, buf ? _IOFBF : _IONBF, BUFSIZ);
}
void setbuffer(FILE* stream, char* buf, size_t size)
{
setvbuf(stream, buf, buf ? _IOFBF : _IONBF, size);
}
void setlinebuf(FILE* stream)
{
setvbuf(stream, NULL, _IOLBF, 0);
}
}