SCCS-vsn: lib/libc/stdio/ftell.c 4.1
--- /dev/null
+/* @(#)ftell.c 4.1 (Berkeley) %G% */
+/*
+ * Return file offset.
+ * Coordinates with buffering.
+ */
+
+#include <stdio.h>
+long lseek();
+
+
+long ftell(iop)
+FILE *iop;
+{
+ long tres;
+ register adjust;
+
+ if (iop->_cnt < 0)
+ iop->_cnt = 0;
+ if (iop->_flag&_IOREAD)
+ adjust = - iop->_cnt;
+ else if (iop->_flag&_IOWRT) {
+ adjust = 0;
+ if (iop->_base && (iop->_flag&_IONBF)==0)
+ adjust = iop->_ptr - iop->_base;
+ } else
+ return(-1);
+ tres = lseek(fileno(iop), 0L, 1);
+ if (tres<0)
+ return(tres);
+ tres += adjust;
+ return(tres);
+}