Annotation of 3BSD/libI77/sue.c, revision 1.1

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: }

unix.superglobalmegacorp.com

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