[Gambas-user] Conflicting and bewildering help for pipes

Bruce bbruen at ...2308...
Wed Oct 30 04:34:45 CET 2013


On Wed, 2013-10-30 at 00:46 +0100, Benoît Minisini wrote:
> Le 30/10/2013 00:00, Benoît Minisini a écrit :
> > Le 29/10/2013 23:12, Tobias Boege a écrit :
> >> On Fri, 25 Oct 2013, Beno?t Minisini wrote:
> >>> Le 24/10/2013 15:08, Tobias Boege a ?crit :
> >>>> My workaround always was like this:
> >>>>
> >>>>      ' Create the read pipe special file
> >>>>      hGPstdout = Pipe "/tmp/gnuplotFIFO2" For Write
> >>>>      Close #hGPstdout
> >>>>      ' Create write end
> >>>>      hGPpipe = Pipe "/tmp/gnuplotFIFO1" For Write
> >>>>      ' Start writer
> >>>>      hGPproc = Shell "gnuplot </tmp/gnuplotFIFO1 >/tmp/gnuplotFIFO2"
> >>>>      ' Really create read end
> >>>>      hGPstdout = Pipe "/tmp/gnuplotFIFO2" For Read Watch
> >>>>
> >>>> Note that since the shell which starts hGPproc already opened
> >>>> /tmp/gnuplotFIFO2, you won't have any deadlock problems when opening
> >>>> hGPstdout For Read afterwards.
> >>>>
> >>>> Anyway, if I
> >>>>
> >>>>      Print #hGPpipe, "plot x^2"
> >>>>
> >>>> only garbage (not non-sense but the string is always scrambled) seems to
> >>>> arrive at gnuplot. Also, I seem to get output from gnuplot irregularly. So
> >>>> I'm out of options for now. I remember that raising Read events for streams
> >>>> has been subject to issues from time to time...
> >>>>
> >>>> Regards,
> >>>> Tobi
> >>>>
> >>>
> >>> Please give details. I tried what you said (but "plot x*x" because"
> >>> "plot x^2" seems to not be the good syntax), and I always got the plot
> >>> as expected.
> >>>
> >>
> >> OK. The attached project gives the following output after I pressed
> >> "Button1" four or five times:
> >>
> >> ---
> >> Read             line 0: non-integer passed to boolean operator
> >>
> >>
> >> Read
> >> gnuplot> lot x^1
> >>            ^
> >>            line 0: invalid command
> >>
> >>
> >> Read
> >> gnuplot> pot x^1
> >>            ^
> >>            line 0:
> >> Read    invalid command
> >>
> >>
> >> Read
> >> gnuplot> lotx^1
> >>            ^
> >>            line 0: invalid command
> >>
> >>
> >> Read
> >> gnuplot> plp plot x^1
> >>            ^
> >>
> >> Read    line 0: invalid command
> >>
> >>
> >>
> >> ---
> >>
> >> You can see that in each message, one character is missing so that "plot" is
> >> "lot" or "pot" or "lot" again. The missing characters "plp" appear in the
> >> last message, totally mis-placed.
> >>
> >> Am I maybe reading incorrectly from the pipe?
> >>
> >> Regards,
> >> Tobi
> >>
> >
> > Spoke too fast. Now I have the same output as you (more or less)...
> >
> 
> Try that. You must kill gnuplot explicitely. Otherwise by running the 
> program several times, you get a lot of gnuplot processes all writing to 
> the same pipes. So everything is mixed.
> 
> Otherwise, why using file pipes that way? Why not communicate directly 
> with the input/output of the gnuplot process?
> 


Woohoo! Now it's working properly.

Attached is a bit of gnuplot fun.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: pipedoc-0.0.3.tar.gz
Type: application/x-compressed-tar
Size: 5631 bytes
Desc: not available
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20131030/3e3c557a/attachment.bin>


More information about the User mailing list