fclose.c 378 B

1234567891011121314151617181920212223
  1. /* $Id$ */
  2. #include <stdio.h>
  3. fclose(fp)
  4. FILE *fp;
  5. {
  6. register int i;
  7. for (i=0; i<_NFILES; i++)
  8. if (fp == _io_table[i]) {
  9. _io_table[i] = 0;
  10. break;
  11. }
  12. if (i >= _NFILES)
  13. return(EOF);
  14. fflush(fp);
  15. close(fileno(fp));
  16. if ( io_testflag(fp,IO_MYBUF) && fp->_buf )
  17. free( fp->_buf );
  18. if (fp != &_stdin && fp != &_stdout && fp != &_stderr) free(fp);
  19. return(NULL);
  20. }