Annotation of 42BSD/usr.bin/refer/refer3.c, revision 1.1

1.1     ! root        1: #ifndef lint
        !             2: static char *sccsid = "@(#)refer3.c    4.1 (Berkeley) 5/6/83";
        !             3: #endif
        !             4: 
        !             5: #include "refer..c"
        !             6: #define move(x, y) close(y); dup(x); close(x);
        !             7: 
        !             8: corout(in, out, rprog, arg, outlen)
        !             9: char *in, *out, *rprog;
        !            10: {
        !            11:        int pipev[2], fr1, fr2, fw1, fw2, n;
        !            12:        int status;
        !            13: 
        !            14:        pipe(pipev); 
        !            15:        fr1 = pipev[0]; 
        !            16:        fw1 = pipev[1];
        !            17:        pipe(pipev); 
        !            18:        fr2 = pipev[0]; 
        !            19:        fw2 = pipev[1];
        !            20:        if (fork() == 0)
        !            21:        {
        !            22:                close(fw1); 
        !            23:                close(fr2);
        !            24:                move(fr1, 0);
        !            25:                move(fw2, 1);
        !            26:                execl(rprog, "deliv", arg, 0);
        !            27:                err("Can't run %s", (void) rprog);
        !            28:        }
        !            29:        close(fw2); 
        !            30:        close(fr1);
        !            31:        write(fw1, in , strlen(in));
        !            32:        close(fw1);
        !            33:        wait(&status);
        !            34:        n = read(fr2, out, outlen);
        !            35:        out[n] = 0;
        !            36:        close(fr2);
        !            37:        return(n);
        !            38: }

unix.superglobalmegacorp.com

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