Annotation of researchv10dc/libI77/old/sue.c, revision 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.