Hello,
I'm trying out the address ... with output replace stream 'streamName'
instruction, but it doesn't behave the way I
would expect, and there are no examples in either of the ooRexx manuals for
other than stem and array.
What I'm trying to do is issue several OS commands and capture each
command's output using the stream option.
The first address instruction works as expected, but successive address
instructions return no lines.
Attached are two test programs that show the problem I'm having.
Perhaps I'm using stream incorrectly or inappropriately? but I can't
tell by what is in the manuals.
Leslie
--Platform: Linux
Distribution: openSUSE Leap 15.4 (x86_64)
Open Object Rexx Version 5.0.0 r12583
Build date: Dec 23 2022
Addressing mode: 64
#!/usr/bin/env rexx
-- Unexpected behaviour with serial reuse of
-- address command ... using output replace stream 'streamName'
osCommand = .Stream ~ new('osCommand')
address command 'echo "First use of stream osCommand."' with output replace
stream 'osCommand'
say 'First use of stream osCommand returned' osCommand ~ lines 'lines.'
loop C = 1 to osCommand ~ lines
say 'osCommand line' C':' osCommand ~ lineIn
end
say 'First use of stream osCommand ended with rc' rc'.'
say
address command 'echo "Second use of stream osCommand."' with output replace
stream 'osCommand'
say 'Second use of stream osCommand returned' osCommand ~ lines 'lines.'
loop C = 1 to osCommand ~ lines
say 'osCommand line' C':' osCommand ~ lineIn
end
say 'Second use of stream osCommand ended with rc' rc'.'
exit rc
#!/usr/bin/env rexx
-- Unexpected behaviour with serial reuse of
-- address command ... using output replace stream 'streamName'
osCommand = .Stream ~ new('osCommand')
address command with output replace stream 'osCommand'
address command 'echo "First use of stream osCommand."'
say 'First use of stream osCommand returned' osCommand ~ lines 'lines.'
loop C = 1 to osCommand ~ lines
say 'osCommand line' C':' osCommand ~ lineIn
end
say 'First use of stream osCommand ended with rc' rc'.'
say
address command 'echo "Second use of stream osCommand."'
say 'Second use of stream osCommand returned' osCommand ~ lines 'lines.'
loop C = 1 to osCommand ~ lines
say 'osCommand line' C':' osCommand ~ lineIn
end
say 'Second use of stream osCommand ended with rc' rc'.'
exit rc
_______________________________________________
Oorexx-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/oorexx-devel