ack/lang/cem/libcc/stdio/ftell.c
1987-03-31 10:45:53 +00:00

27 lines
440 B
C

/* $Header$ */
#include <stdio.h>
long ftell(iop)
FILE *iop;
{
long result;
long lseek();
int adjust = 0;
if ( io_testflag(iop,IO_READMODE) )
adjust -= iop->_count;
else if ( io_testflag(iop,IO_WRITEMODE) && iop->_buf && !io_testflag(iop,IO_UNBUFF))
adjust = iop->_ptr - iop->_buf;
else
return(-1);
result = lseek(fileno(iop), 0L, 1);
if ( result < 0 )
return ( result );
result += (long) adjust;
return(result);
}