|
|
1.1 ! root 1: /* Copyright (c) 1979 Regents of the University of California */ ! 2: ! 3: static char sccsid[] = "@(#)PCLOSE.c 1.4 6/10/81"; ! 4: ! 5: #include "h00vars.h" ! 6: ! 7: PCLOSE(level) ! 8: ! 9: struct iorec *level; ! 10: { ! 11: register struct iorec *next; ! 12: ! 13: next = _fchain.fchain; ! 14: while(next != FILNIL && next->flev <= level) { ! 15: if (next->fbuf != 0) { ! 16: if ((next->funit & FDEF) == 0) { ! 17: if (next->fblk > PREDEF) { ! 18: fflush(next->fbuf); ! 19: setbuf(next->fbuf, NULL); ! 20: } ! 21: fclose(next->fbuf); ! 22: if (ferror(next->fbuf)) { ! 23: ERROR("%s: Close failed\n", ! 24: next->pfname); ! 25: return; ! 26: } ! 27: } ! 28: if ((next->funit & TEMP) != 0 && ! 29: unlink(next->pfname)) { ! 30: PERROR("Could not remove ", next->pfname); ! 31: return; ! 32: } ! 33: } ! 34: _actfile[next->fblk] = FILNIL; ! 35: next = next->fchain; ! 36: } ! 37: _fchain.fchain = next; ! 38: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.