我想从我的程序发送一些数据到通过
uiop:run-program
.
以下工作:
(require :asdf)
(asdf:load-system :uiop)
(uiop:with-temporary-file (:stream dot-program-stream
:pathname dot-program-file)
(format dot-program-stream "digraph g { n1 -> n2; }")
(finish-output dot-program-stream)
:close-stream
(uiop:with-temporary-file (:pathname png-data)
(uiop:run-program '("/usr/bin/dot" "-Tpng") :input dot-program-file
:output png-data)
(uiop:launch-program '("/usr/bin/display") :input png-data)))
这似乎相当复杂。
一个更简单的版本,我只使用了一个流
finish-output
没有使用
:close-stream
标签导致
dot
生成一个空的0字节文件。
如何执行一个进程并将我的lisp程序生成的数据作为标准输入传递给它?