1: #include "fio.h"
2: extern int reclen;
3: long recloc;
4: s_rsue(a) cilist *a;
5: {
6: int n;
7: if(!init) f_init();
8: if(n=c_sue(a,READ)) return(n);
9: reading=1;
10: recpos=0;
11: if(curunit->uwrt) nowreading(curunit);
12: if(fread(&reclen,sizeof(int),1,cf)
13: != 1)
14: { if(feof(cf))
15: { curunit->uend = 1;
16: err(a->ciend, EOF, "start");
17: }
18: clearerr(cf);
19: err(a->cierr, errno, "start");
20: }
21: return(0);
22: }
23: s_wsue(a) cilist *a;
24: {
25: int n;
26: if(!init) f_init();
27: if(n=c_sue(a,WRITE)) return(n);
28: reading=0;
29: reclen=0;
30: if(!curunit->uwrt) nowwriting(curunit);
31: recloc=ftell(cf);
32: fseek(cf,(long)sizeof(int),1);
33: return(0);
34: }
35: c_sue(a,flag) cilist *a;
36: {
37: if(a->ciunit >= MXUNIT || a->ciunit < 0)
38: err(a->cierr,101,"startio");
39: external=sequential=1;
40: formatted=0;
41: curunit = &units[a->ciunit];
42: elist=a;
43: if(curunit->ufd==NULL && fk_open(flag,SEQ,UNF,a->ciunit))
44: err(a->cierr,114,"sue");
45: cf=curunit->ufd;
46: if(curunit->ufmt) err(a->cierr,103,"sue")
47: if(!curunit->useek) err(a->cierr,103,"sue")
48: return(0);
49: }
50: e_wsue()
51: { long loc;
52: fwrite(&reclen,sizeof(int),1,cf);
53: loc=ftell(cf);
54: fseek(cf,recloc,0);
55: fwrite(&reclen,sizeof(int),1,cf);
56: fseek(cf,loc,0);
57: return(0);
58: }
59: e_rsue()
60: {
61: fseek(cf,(long)(reclen-recpos+sizeof(int)),1);
62: return(0);
63: }
Defined functions
c_sue
defined in line
35; used 2 times
s_rsue
defined in line
4;
never used
Defined variables
recloc
defined in line
3; used 2 times