[Gambas-user] PIPE issues

Demosthenes Koptsis demosthenesk at ...626...
Mon Dec 13 08:46:39 CET 2010


On Mon, 2010-12-13 at 06:55 +0100, Benoît Minisini wrote:
> > Gambas2 2.21 rev3300
> > 
> > this example is not working in Ubuntu 10.04 AMD64
> > 
> > PUBLIC SUB Main()
> > 
> > ' Prints the messages sent to a pipe
> > 
> > DIM hFile AS File
> > DIM sLine AS String
> > 
> > hFile = PIPE "/tmp/FIFO1" FOR INPUT
> > 
> > WHILE NOT Eof(hFile)
> >   LINE INPUT #hFile, sLine
> >   PRINT sLine
> > WEND
> > 
> > END
> > 
> > The pipe is created ok!
> > But if i make a ls > /tmp/FIFO1
> > 
> > nothing is appeared in console and program terminates.
> > 
> 
> This is a pipe. Data is available only when it has been filled by the other 
> side. So Eof() can returns true at anytime, even if some data may be written 
> in the future. Gambas cannot read the future yet.

Benoit, i got this example from the wiki.
http://gambasdoc.org/help/lang/pipe?v3


> > if i change to
> > WHILE TRUE
> > 
> > i get the ls results to console and
> > i get an error
> > 
> > System error. Inappropriate ioctl for device.
> 
> The error message is not very accurate. But it is normal, as reading on a pipe 
> that has been closed on the other side is impossible.
> 
> Regards,
> 

What is the right code to read a pipe if it is not with Eof() or WHILE
TRUE ?


Thanks Benoit for your answer.

-- 
Regards,
Demosthenes Koptsis.





More information about the User mailing list