Annotation of researchv9/libc/stdio/ftell.c, revision 1.1

1.1     ! root        1: /* @(#)ftell.c 4.2 (Berkeley) 3/9/81 */
        !             2: /*
        !             3:  * Return file offset.
        !             4:  * Coordinates with buffering.
        !             5:  */
        !             6: 
        !             7: #include       <stdio.h>
        !             8: long   lseek();
        !             9: 
        !            10: 
        !            11: long ftell(iop)
        !            12: FILE *iop;
        !            13: {
        !            14:        long tres;
        !            15:        register adjust;
        !            16: 
        !            17:        if (iop->_cnt < 0)
        !            18:                iop->_cnt = 0;
        !            19:        if (iop->_flag&_IOREAD)
        !            20:                adjust = - iop->_cnt;
        !            21:        else if (iop->_flag&(_IOWRT|_IORW)) {
        !            22:                adjust = 0;
        !            23:                if (iop->_flag&_IOWRT && iop->_base && (iop->_flag&_IONBF)==0)
        !            24:                        adjust = iop->_ptr - iop->_base;
        !            25:        } else
        !            26:                return(-1);
        !            27:        tres = lseek(fileno(iop), 0L, 1);
        !            28:        if (tres<0)
        !            29:                return(tres);
        !            30:        tres += adjust;
        !            31:        return(tres);
        !            32: }

unix.superglobalmegacorp.com

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