|
|
1.1 ! root 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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.