[Gambas-user] Conflicting and bewildering help for pipes

Benoît Minisini gambas at ...1...
Wed Oct 30 00:46:31 CET 2013


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?

-- 
Benoît Minisini
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pipedoc-0.0.2.tar.gz
Type: application/gzip
Size: 5210 bytes
Desc: not available
URL: <http://lists.gambas-basic.org/pipermail/user/attachments/20131030/78bd42ca/attachment.gz>


More information about the User mailing list