Annotation of 43BSDTahoe/lib/libc/stdio/ftell.c, revision 1.1

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

unix.superglobalmegacorp.com

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