|
|
1.1 ! root 1: /* ! 2: * SEEK ! 3: * ! 4: * Seek to position in stream ! 5: * ! 6: * Stephen B. Wampler ! 7: * ! 8: * Last modified 5/2/86 by Ralph E. Griswold ! 9: * ! 10: */ ! 11: ! 12: #include "../h/rt.h" ! 13: ! 14: /* ! 15: * seek(file,offset,start) - seek to offset byte from start in file. ! 16: */ ! 17: ! 18: FncDcl(seek,3) ! 19: { ! 20: long l1, l2; ! 21: int status; ! 22: FILE *fd; ! 23: long ftell(); ! 24: ! 25: if (Arg1.dword != D_File) ! 26: runerr(106); ! 27: ! 28: defint(&Arg2, &l1, 0); ! 29: defshort(&Arg3, 0); ! 30: ! 31: fd = BlkLoc(Arg1)->file.fd; ! 32: ! 33: if ((BlkLoc(Arg1)->file.status == 0) || ! 34: (fseek(fd, l1, Arg3.vword.integr) == -1)) ! 35: Fail; ! 36: Mkint(ftell(fd), &Arg0); ! 37: Return; ! 38: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.