|
|
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: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.