|
|
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.