Annotation of researchv9/jerq/src/lib/mj/popen.c, revision 1.1.1.1

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: 

unix.superglobalmegacorp.com

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