# include # include "mon_files.h" # include "tops20.h" int pipe(fildes) int fildes[2]; { char pipstr[40]; int jfn, acs[5]; jfn = _gtjfn("PIP:", Value(GJ_sht) ); /* get output JFN */ if( jfn < 0 ) return( -1 ); ac1 = jfn; ac2 = makefield(OF_bsz, 8) + Value(OF_wr); if( JSYS(JSopenf, acs) == JSerr ) { _seterr(); _rljfn(jfn); return( -1 ); } /* open failed */ fildes[1] = jfn; ac1 = POINT( pipstr ); ac2 = jfn; ac3 = makefield(JS_dev, JSaof) + makefield(JS_nam, JSaof) + Value(JS_paf); JSYS(JSjfns, acs); ac2 = '.'; JSYS(JSbout, acs); ac2 = jfn; ac3 = makefield(JS_nam, JSaof); JSYS(JSjfns, acs); ac2 = '\0'; JSYS(JSbout, acs); jfn = _gtjfn(pipstr, Value(GJ_sht) ); /* get input JFN */ if( jfn < 0 ) { _seterr(); _rljfn(fildes[1]); return( -1 ); } /* input getjfn failed */ ac1 = jfn; ac2 = makefield(OF_bsz, 8) + Value(OF_rd); if( JSYS(JSopenf, acs) == JSerr ) { _seterr(); /* save error code now */ _rljfn(jfn); /* release unopened JFN */ ac1 = fildes[1]; /* get output JFN */ JSYS(JSclosf, acs); /* toss it too */ return( -1 ); } /* open failed */ fildes[0] = jfn; return( 0 ); } /* pipe */