ack/lang/cem/libcc/stdio/fclose.c
1987-07-16 16:08:13 +00:00

24 lines
382 B
C

/* $Header$ */
#include <stdio.h>
fclose(fp)
FILE *fp;
{
register int i;
for (i=0; i<_NFILES; i++)
if (fp == _io_table[i]) {
_io_table[i] = 0;
break;
}
if (i >= _NFILES)
return(EOF);
fflush(fp);
close(fileno(fp));
if ( io_testflag(fp,IO_MYBUF) && fp->_buf )
free( fp->_buf );
if (fp != &_stdin && fp != &_stdout && fp != &_stderr) free(fp);
return(NULL);
}