ref: 91c13bda9037612ffec3b4c3a8a2d4b083eac4e8
dir: /sys/src/ape/lib/ap/stdio/fclose.c/
/*
* pANS stdio -- fclose
*/
#include "iolib.h"
int fclose(FILE *f){
int error=0;
if(!f) return EOF;
if(f->state==CLOSED) return EOF;
if(fflush(f)==EOF) error=EOF;
if(f->flags&BALLOC) free(f->buf);
if(!(f->flags&STRING) && close(f->fd)<0) error=EOF;
f->state=CLOSED;
f->flags=0;
return error;
}