Open Process on OSX
Samuel M. Smith
smithsm at samuelsmith.org
Tue Oct 18 16:40:56 EDT 2005
>> I never can read from the process once the process tries to read
>> from runrev
>> The write was correctly received by the process because it gets
>> written to the file in the process
>> However runrev doesn't manage reads by the process correctly since
>> I can't read from the process by runrev
>> once the process tries to read from runrev.
>> Looks like a bug.
>>
>
> I think what is happening is that the pointer has moved to the end
> of the data and there is nothing left to read. I haven't
> specifically used the "open/read process" commands, but it looks
> like they function exactly the way opening and reading files does.
> If so, every read and write moves the current location of the
> pointer to the end of the string just read or written. When you
> read the first line, the pointer is at the end of that line.
> Reading the next line moves it to the end of the second line.
> Writing a line then moves it to the end of the third line. If you
> then issue another "read" command, you are at the end of the file
> and there is nothing to read.
>
> To read the third line in this situation, you must include the
> "start" position in the "read" command, which should indicate the
> character offset of the third line. You'll have to parse this. If
> you are storing the parts you've read so far in a variable, the
> offset would be the length of the stored variable, for example.
If so it would be make it really annoying to manage an interactive
process.
I haven't had time to test your suggestion but I already did a test
where the first thing I did was write to the process
before I read anything and the subsequent reads from the process
worked fine. This behavior seems inconsistent with your suggestion.
I will test and verify however
thanks for the suggestion
More information about the use-livecode
mailing list