Annotation of researchv9/libc/stdio/ftell.c, revision 1.1.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.