Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Inferior Shell or UIOP: Interacting with background process

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

like image 804
Todd Pierce Avatar asked Nov 09 '22 09:11

Todd Pierce


1 Answers

Have you looked at the SBCL manual? The options for RUN-PROGRAM are documented there: http://www.sbcl.org/manual/#Running-external-programs

I 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 execute gnuplot (although I'm not leaving the input stream open as you want). https://github.com/belambert/cl-gnuplot/blob/master/src/gnuplot.lisp#L18

like image 104
blambert Avatar answered Jan 02 '23 21:01

blambert