diff options
-rw-r--r-- | include/stdio.h | 2 | ||||
-rw-r--r-- | src/stdio/setbuf.c | 2 | ||||
-rw-r--r-- | src/stdio/setbuffer.c | 7 | ||||
-rw-r--r-- | src/stdio/setlinebuf.c | 7 |
4 files changed, 17 insertions, 1 deletions
diff --git a/include/stdio.h b/include/stdio.h index 186fdf2c..69178cc8 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -156,6 +156,8 @@ char *cuserid(char *); #define off64_t off_t int asprintf(char **, const char *, ...); int vasprintf(char **, const char *, va_list); +void setlinebuf(FILE *); +void setbuffer(FILE *, char *, size_t); #endif #ifdef __cplusplus diff --git a/src/stdio/setbuf.c b/src/stdio/setbuf.c index 205afcfe..1b98d503 100644 --- a/src/stdio/setbuf.c +++ b/src/stdio/setbuf.c @@ -1,4 +1,4 @@ -#include "stdio_impl.h" +#include <stdio.h> void setbuf(FILE *f, char *buf) { diff --git a/src/stdio/setbuffer.c b/src/stdio/setbuffer.c new file mode 100644 index 00000000..71233d2e --- /dev/null +++ b/src/stdio/setbuffer.c @@ -0,0 +1,7 @@ +#define _GNU_SOURCE +#include <stdio.h> + +void setbuffer(FILE *f, char *buf, size_t size) +{ + setvbuf(f, buf, buf ? _IOFBF : _IONBF, size); +} diff --git a/src/stdio/setlinebuf.c b/src/stdio/setlinebuf.c new file mode 100644 index 00000000..b93c4d6a --- /dev/null +++ b/src/stdio/setlinebuf.c @@ -0,0 +1,7 @@ +#define _GNU_SOURCE +#include <stdio.h> + +void setlinebuf(FILE *f) +{ + setvbuf(f, 0, _IOLBF, 0); +} |