diff options
Diffstat (limited to 'mdk-stage1/dietlibc/libstdio/fclose.c')
-rw-r--r-- | mdk-stage1/dietlibc/libstdio/fclose.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/libstdio/fclose.c b/mdk-stage1/dietlibc/libstdio/fclose.c new file mode 100644 index 000000000..6958a48e7 --- /dev/null +++ b/mdk-stage1/dietlibc/libstdio/fclose.c @@ -0,0 +1,24 @@ +#include "dietstdio.h" +#include <stdlib.h> +#include <unistd.h> + +int fclose(FILE *stream) { + int res; +#ifdef WANT_BUFFERED_STDIO + FILE *f,*fl; +#endif + fflush(stream); + res=close(stream->fd); +#ifdef WANT_BUFFERED_STDIO + for (fl=0,f=__stdio_root; f; fl=f,f=f->next) + if (f==stream) { + if (fl) + fl->next=f->next; + else + __stdio_root=f->next; + break; + } +#endif + free(stream); + return res; +} |