1*3e12c5d1SDavid du Colombier /* 2*3e12c5d1SDavid du Colombier * pANS stdio -- fclose 3*3e12c5d1SDavid du Colombier */ 4*3e12c5d1SDavid du Colombier #include "iolib.h" fclose(FILE * f)5*3e12c5d1SDavid du Colombierint fclose(FILE *f){ 6*3e12c5d1SDavid du Colombier int error=0; 7*3e12c5d1SDavid du Colombier if(!f) return EOF; 8*3e12c5d1SDavid du Colombier if(f->state==CLOSED) return EOF; 9*3e12c5d1SDavid du Colombier if(fflush(f)==EOF) error=EOF; 10*3e12c5d1SDavid du Colombier if(f->flags&BALLOC) free(f->buf); 11*3e12c5d1SDavid du Colombier if(!(f->flags&STRING) && close(f->fd)<0) error=EOF; 12*3e12c5d1SDavid du Colombier f->state=CLOSED; 13*3e12c5d1SDavid du Colombier f->flags=0; 14*3e12c5d1SDavid du Colombier return error; 15*3e12c5d1SDavid du Colombier } 16