> Benoît Minisini ha scritto: > >> Pipes should not return EOF when the pipe is not closed. But they should > >> return EOF when the other side closes. > > > > Why ? > > Because this is the way *all* unix routines work, and the only logical one. > > > EOF() actually means "there is nothing to read anymore", which is the > > important needed information. > > Indeed: it means "nothing anymore", not "nothing at the moment". > > > If Eof() returns TRUE only when the pipe is closed: > > > > 1) How do you know that there is nothing to read anymore? > > I know that there is nothing to read now, and in the future too, if > eof() is true. If eof() is false, I know that some data could arrive, if > not now, in the future. Try "cat", one of the simplest unix commands. It > knows very well when there is data to read, when there is not, and when > the pipe is closed. > > > 2) What do you do for Sockets, for example? > > The same as pipes. If there is data to read, I read it. If there is not, > I don't. If eof() is true, I close my local socket because the other > peer has closed. May be I am missing something -- using your ideas, how > can you tell that a pipe (or a remote socket) is closed or not? >
You get a point, but Eof() in Gambas does not actually mean what EOF means in Unix. I had only one Basic syntax for that, and I need to know if there is something to read on a stream, and I used Eof() for that. For a file stream, the two meanings are the same. But not for a pipe or a socket. At the moment, for a pipe or a socket, you get an error when it is closed. Note that for a socket, "there is date to read" does not mean the same thing than for a pipe, because there is the network between two sides of a socket. I will try to change the meaning of Eof() to match the Unix one, and see how many things break. And I will keep the meaning of Lof(), so that Lof() = 0 means that there is nothing to read, even if the new Eof() is False. Regards, -- Benoît Minisini ------------------------------------------------------------------------------ Forrester recently released a report on the Return on Investment (ROI) of Google Apps. They found a 300% ROI, 38%-56% cost savings, and break-even within 7 months. Over 3 million businesses have gone Google with Google Apps: an online email calendar, and document program that's accessible from your browser. Read the Forrester report: http://p.sf.net/sfu/googleapps-sfnew _______________________________________________ Gambas-user mailing list Gambas-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gambas-user