/* * fclose.c - flush a stream and close the file */ /* $Header$ */ #include #include #include "loc_incl.h" int close(int d); int fclose(FILE *fp) { register int i, retval = 0; for (i=0; i= FOPEN_MAX) return(EOF); if (fflush(fp)) retval = EOF; /* ??? */ if (close(fileno(fp))) retval = EOF; /* ??? */ if ( io_testflag(fp,_IOMYBUF) && fp->_buf ) free((void *)fp->_buf); if (fp != &_stdin && fp != &_stdout && fp != &_stderr) free((void *)fp); return(retval); }