On 2013-04-07 00:04:45 +0200, Michael Van Canneyt wrote: > > > On Sat, 6 Apr 2013, Leonardo M. Ramé wrote: > > >On 2013-04-06 13:22:39 -0300, Leonardo M. Ramé wrote: > >>On 2013-04-06 17:46:06 +0200, Mattias Gaertner wrote: > >>>On Sat, 6 Apr 2013 12:37:06 -0300 > >>>Leonardo M. Ramé <l.r...@griensu.com> wrote: > >>> > >>>>[...] > >>>>>Check return value of Proc.Input.Write. > >>>>>And call Proc.CloseInput when your input was written completely. > >>>>> > >>>>> > >>>> > >>>>Mmm, I'm getting the same result. > >>>> > >>>>I attached the new code. > >>> > >>>When you give Proc.Input.Write 200 bytes and it returns that the other > >>>process could only process 100 of them. What bytes do you have to write > >>>next? > >>> > >> > >>Sorry, I'm not getting it. Which other process?, apart from that, > >>Proc.Input.Write is always returning the sizeof(buffer) except when it > >>reaches the end, where it can be less than it. > >> > >>It seems that the Proc.Input part is ok, aparently the Proc.Output is > >>wrong :( > >> > >>I attached a slightly modified code. > >> > > > >Finally got it working, I was forgetting to read the last part of the > >Output stream. ...I still don't know why this last chunk of bytes > >doesn't show up in NumBytesAvailable. > > NumBytesAvailable is inherently unreliable. I didn't like it's addition. > > You should never use it in critical code. > > Michael.
Maybe that's why the same program doesn't work on FreeBSD?. What can I use instead of it?. -- Leonardo M. Ramé http://leonardorame.blogspot.com -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus