diff options
author | Jakob Kaivo <jkk@ung.org> | 2019-02-08 18:42:39 -0500 |
---|---|---|
committer | Jakob Kaivo <jkk@ung.org> | 2019-02-08 18:42:39 -0500 |
commit | 7ef8a7379f7f7d09e71ccae2a0b688c3cd80423f (patch) | |
tree | 092ab0aed1769117fd7b28b8592f6f96b0e0d5af /src/stdio/fflush.c | |
parent | 6acf19370e8adff79cd83b257d3f04aeaf2a59dd (diff) |
merge sources into single tree
Diffstat (limited to 'src/stdio/fflush.c')
-rw-r--r-- | src/stdio/fflush.c | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/stdio/fflush.c b/src/stdio/fflush.c new file mode 100644 index 00000000..c7514d10 --- /dev/null +++ b/src/stdio/fflush.c @@ -0,0 +1,44 @@ +#include <stdio.h> +#include "nonstd/io.h" +#include "nonstd/internal.h" + +/** flush buffered writes **/ +int fflush(FILE *stream) +{ + flockfile(stream); + if (stream == NULL) { + FILE *p; + for (p = __libc(FILE_TAIL); p != NULL; p = p->prev) { + fflush(p); + } + } + + /* + if (fsync(stream->fd) != 0) { + stream->err = 1; + return EOF; + } + */ + + funlockfile(stream); + /* + RETURN_SUCCESS(0); + RETURN_FAILURE(CONSTANT(EOF)); + */ + return 0; +} + +/*** +function flushes any buffered write operations on ARGUMENT(stream) to +the underlying file. + +If ARGUMENT(stream) is CONSTANT(NULL), THIS() will flush all open streams. +***/ + +/* +UNDEFINED(ARGUMENT(stream) is not an output stream) +UNDEFINED(ARGUMENT(stream) is an update stream in which the most recent operation was input) +*/ +/* +STDC(1) +*/ |