Annotation of researchv10dc/libI77/old/sue.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.