|
|
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.