26 lines
425 B
C
26 lines
425 B
C
|
#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);
|
||
|
}
|