home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / c / hce.lha / HCE / LibSource / clib / Stdio / src / fseek.c < prev    next >
Encoding:
C/C++ Source or Header  |  1992-09-02  |  612 b   |  39 lines

  1. #include <stdio.h>
  2. #include <errno.h>
  3.  
  4. extern long lseek();
  5.  
  6. long ftell(fp)
  7.     register FILE *fp;
  8.     {
  9.     register long rv;
  10.  
  11.     fflush(fp);
  12.     rv = lseek(fp->_file, 0L, 1);
  13.     return((rv < 0) ? ((errno = ((int) rv)), (-1)) : rv);
  14.     }
  15.  
  16. int fseek(fp, offset, origin)
  17.     register FILE *fp;
  18.     long offset;
  19.     int origin;
  20.     {
  21.     register long rv;
  22.  
  23.     fflush(fp);
  24.     rv = lseek(fp->_file, offset, origin);
  25.     return((rv < 0) ? ((errno = ((int) rv)), (-1)) : 0);
  26.     }
  27.  
  28. void rewind(fp)
  29.     register FILE *fp;
  30.     {
  31.     register long rv;
  32.  
  33.     fflush(fp);
  34.     rv = lseek(fp->_file, 0L, SEEK_SET);
  35.     if(rv < 0)
  36.         errno = ((int) rv);
  37.     fp->_flag &= ~(_IOEOF|_IOERR);
  38.     }
  39.