Annotation of 3BSD/cmd/lisp/fpipe.c, revision 1.1.1.1

1.1       root        1: #include <stdio.h>
                      2: FILE *_dofpip(iodes)
                      3: int iodes;
                      4: {
                      5:        register FILE *p;
                      6: 
                      7:        for(p=_iob; (p->_flag&(_IOWRT|_IOREAD))!=0; p++)
                      8:                if (p >= _iob+_NFILE)
                      9:                        return(NULL);
                     10:        p->_file = iodes;
                     11:        p->_cnt = 0;
                     12:        p->_base = p->_ptr = NULL;
                     13:        return(p);
                     14: }
                     15: 
                     16: FILE * fpipe(info)
                     17: FILE *info[2];
                     18: {
                     19:        register FILE *p;
                     20:        int descrips[2];
                     21: 
                     22:        if(0 > pipe(descrips)) return( (FILE *) -1);
                     23: 
                     24:        if(NULL==(p = _dofpip(descrips[0]))) return( (FILE *) -1);
                     25:        p->_flag = (_IONBF|_IOREAD);
                     26:        info[0] = p;
                     27: 
                     28:        if(NULL==(p = _dofpip(descrips[1]))) return( (FILE *) -1);
                     29:        p->_flag = _IOWRT;
                     30:        info[1] = p;
                     31:        return((FILE *) 2); /*indicate sucess*/
                     32: }

unix.superglobalmegacorp.com

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