Annotation of 43BSD/contrib/icon/pifuncs/seek.c, revision 1.1

1.1     ! root        1: /*
        !             2: #      SEEK(3.icon)
        !             3: #
        !             4: #      Seek to position in stream
        !             5: #
        !             6: #      Stephen B. Wampler
        !             7: #
        !             8: #      Last modified 8/19/84
        !             9: #
        !            10: */
        !            11: 
        !            12: #include "../h/rt.h"
        !            13: 
        !            14: /*
        !            15:  * seek(file,offset,start) - seek to offset byte from start in file.
        !            16:  */
        !            17: 
        !            18: Xseek(nargs, arg3, arg2, arg1, arg0)
        !            19: int nargs;
        !            20: struct descrip arg3, arg2, arg1, arg0;
        !            21:    {
        !            22:    long l1, l2;
        !            23:    int status;
        !            24:    FILE *fd;
        !            25:    long ftell();
        !            26: 
        !            27:    DeRef(arg1)
        !            28:    if (arg1.type != D_FILE)
        !            29:       runerr(106);
        !            30: 
        !            31:    defint(&arg2, &l1, 0);
        !            32:    defshort(&arg3, 0);
        !            33: 
        !            34:    fd = BLKLOC(arg1)->file.fd;
        !            35: 
        !            36:    if ((BLKLOC(arg1)->file.status == 0) ||
        !            37:        (fseek(fd, l1, arg3.value.integr) == -1))
        !            38:       fail();
        !            39:    mkint(ftell(fd), &arg0);
        !            40:    }
        !            41: 
        !            42: Procblock(seek,3)

unix.superglobalmegacorp.com

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