So, I got past actually getting a program to run from SBCL Lisp using inferior-shell (presumably UIOP would be just fine). Anyway, now that I can do that, I still have no clue how to interact with the program if it is running in the background.
All of this functionality like pipes and streams connected to the stdin and stdout of the running program are advertised, just not documented. It would seem like this is the most basic thing to do.
Does anybody have an example of doing such a thing?
Any help is appreciated.
-Todd
Have you looked at the SBCL manual? The options for
RUN-PROGRAM
are documented there: http://www.sbcl.org/manual/#Running-external-programsI think you just need to create streams and pass them to
RUN-PROGRAM
via the:input
,:output
, and:error
arguments.Here is an example where I give
RUN-PROGRAM
stream arguments to executegnuplot
(although I'm not leaving the input stream open as you want). https://github.com/belambert/cl-gnuplot/blob/master/src/gnuplot.lisp#L18