Annotation of researchv10dc/cmd/pascal/libpc/PCLOSE.c, revision 1.1.1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.