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().
This commit is contained in:
apio 2023-07-22 11:34:05 +02:00
parent 77022abafd
commit 085d2895e8
Signed by: apio
GPG Key ID: B8A7D06E42258954
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);
}
}