[Ecls-list] ext:run-program always waits
Andie Kirkpatrick
spacebat at ubermonkey.net
Wed Oct 8 12:03:20 UTC 2008
Hi,
I'm using ecl-0.9l and struggling with ext:run-program. When I evaluate:
(ext:run-program "/bin/echo" '("testing") :output :stream)
I get a stream from which I can read-line the intended output. However
when I try to run any program that expects to consume its standard input
before terminating, things fail:
(ext:run-program "/bin/cat" nil :input :stream :output :stream)
This never returns control, so following that with a write to the
resulting stream doesn't work because I never get to that point. I
figured that I needed to add :wait nil to the lambda list, but when I do
that I get:
Unknown keyword :WAIT
However, digging into the source a bit, the only definition for this
function is in src/c/unixsys.d starting line 74:
@(defun ext::run-program (command argv &key (input @':stream')
(output @':stream') (error @'t') (wait @'t'))
I can use keywords input, output and error, but wait isn't accepted. Any
ideas what I might be doing wrong? I was sure to remove all other ecl
builds from my machine before building ecl-0.9l afresh to be sure there
isn't an earlier version of the lib being linked in.
Thanks in advance for any help on this.
AK
More information about the ecl-devel
mailing list