|
|
1.1 root 1: #include <jerq.h>
2: #include <jerqio.h>
3: #define _SYSPOPEN 6
4: #define _SYSPCLOSE 7
5:
6: FILE *
7: popen(s,mode)
8: char *s,*mode;
9: {
10: register int i;
11: register FILE *f;
12: extern FILE *_lastbuf;
13: for (f = _iob, i = 0; f->flag & (_IOREAD | _IOWRT); f++, i++);
14: if (f > _lastbuf)
15: return((FILE *)0);
16: tag(_SYSPOPEN);
17: jputshort(i);
18: jputstr(s);
19: jputchar(*mode);
20: jflush();
21: if (i != jgetshort())
22: return((FILE *)0);
23: f->file = i;
24: if (*mode == 'r') {
25: f->count = 0;
26: f->flag = _IOREAD;
27: }
28: else {
29: f->count = BUFSIZ;
30: f->flag = _IOWRT;
31: }
32: f->cp = f->base = NULL;
33: return(f);
34: }
35:
36: pclose(f)
37: FILE *f;
38: {
39: fflush(f);
40: free(f->base);
41: f->cp = f->base = NULL;
42: f->flag = 0;
43: tag(_SYSPCLOSE);
44: jputshort(fileno(f));
45: jflush();
46: return(jgetshort());
47: }
48:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.