Annotation of coherent/b/lib/libc/XSTDIO/fclose.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * libc/stdio/fclose.c
                      3:  * ANSI-compliant C standard i/o library.
                      4:  * fclose()
                      5:  * ANSI 4.9.5.1.
                      6:  * Close a stream.
                      7:  */
                      8: 
                      9: #include <stdio.h>
                     10: 
                     11: int
                     12: fclose(stream) register FILE *stream;
                     13: {
                     14:        register int flags, status;
                     15:        register _FILE2 *f2p;
                     16: 
                     17:        f2p = stream->_f2p;
                     18:        flags = stream->_ff2;
                     19:        if ((flags & _FINUSE) == 0)
                     20:                return EOF;                     /* Not in use */
                     21:        status = fflush(stream);                /* Flush unwritten data */
                     22: #if    _DONTC
                     23:        if (flags & _FDONTC)
                     24:                return status;                  /* Don't close */
                     25: #endif
                     26:        close(fileno(stream));                  /* Call sys close */
                     27:        if (flags & _FFREEB)
                     28:                free(f2p->_bp);                 /* Release allocated buffer */
                     29:        if (f2p->_nm != NULL) {
                     30:                remove(f2p->_nm);               /* Delete temporary file */
                     31:                free(f2p->_nm);                 /* and release allocated name */
                     32:        }
                     33:        stream->_ff1 = stream->_ff2 = 0;        /* Reset all flags */
                     34:        return status;
                     35: }
                     36: 
                     37: /* end of libc/stdio/fclose.c */

unix.superglobalmegacorp.com

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