RE: J. Browns Pipe library error
- Posted by Chris Burch <chriscrylex at aol.com> Dec 23, 2003
- 362 views
Hi Nope, doesn't work. Quote. Still get too many files open. Already tried that Chris Elliott S. de Andrade wrote: > > > Try using os_close() on the last three values returned from popen. These > > would be pin, pout, and perr in your code. > > >From: Chris Burch <chriscrylex at aol.com> > >Reply-To: EUforum at topica.com > >To: EUforum at topica.com > >Subject: J. Browns Pipe library error > >Date: Mon, 22 Dec 2003 15:08:33 +0000 > > > >Hi > > > >Try this > > > >--with trace > >include graphics.e > >include pipeio.e > > > >sequence line > >clear_screen() > > > >puts(1, "Debug 1\n") > > > >sequence data > >integer pid, pin, pout, perr > >object c > > > >while(1) do > > > >data = popen("/home/crylex/euphoria/bin/exu", {"./subprocess1.exu"}) > >--data = popen("/bin/echo", {"Hello", "jobby"}) > > > >pid = data[1] > >pin = data[2] > >pout = data[3] > >perr = data[4] > > > >puts(1,"Debug 2\n") > > > >c = os_read(pout, 256) > > > >puts(1,"Debug 3\n") > > > >if atom(c) then > > printf(1, "Failed on read with error %x", os_errno) > > abort(1) > >end if > > > >puts(1, c) > > > >--have to stop the program in order to see the output! > >--line = gets(0) > > > >VOID = os_kill(pid, 15) > >--close(pout) > > > >end while > > > > > >Eventually you'll get Errno = 24 > > > >Little c prog to get errno string gives > > > >Too many open files > > > >Doesn't seem to be a way to close open pipes in this lib (is an os_close > >function, but this needs a handle, and can't see any way of getting a > >handle) > > > >Any ideas anyone > > > >Regards > > > >Chris > > >