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

  1. #include <stdio.h>
  2. #include <fcntl.h>
  3. #include <errno.h>
  4.  
  5. extern struct _device *_devtab[];
  6. extern void Chk_Abort();
  7.  
  8. long lseek(h, where, how)
  9. unsigned int h;
  10. long where;
  11. int how;
  12. {
  13.     register long rv;
  14.     register struct _device *p;
  15.     
  16.     Chk_Abort();
  17.     p = &((*_devtab)[h]);
  18.     if ( h < OPEN_MAX && !p->fileHandle ) {
  19.         errno = EBADF;
  20.         return -1;
  21.     }
  22.  
  23.     if ( Seek(p->fileHandle, where, (long)(how-1)) == -1 ) {
  24.         errno = EFAULT;
  25.         return -1;
  26.     }
  27.  
  28.     /*
  29.      * Ask Amigados where we are relative to the start.
  30.      */
  31.  
  32.     rv = Seek( p->fileHandle, 0L, 0L);
  33.     return rv;
  34. }
  35.  
  36. long tell(h)
  37.     int h;
  38.     {
  39.     return(lseek(h, 0L, SEEK_CUR));
  40.     }
  41.