sb-ext的Args:run-program

时间:2010-11-02 14:03:42

标签: common-lisp sbcl

有人可以准确地告诉我sb-ext:run-program的args参数应该是什么样的吗?

如果我这样做:

(sb-ext:run-program "C:/Program Files/iTunes/iTunes.exe" 
               "C:/lispbox-0.7/opus.mid")

我收到此错误:

debugger invoked on a TYPE-ERROR:
  The value "C:/lispbox-0.7/opus.mid" is not of type LIST.

但是,如果我这样做:

(sb-ext:run-program "C:/Program Files/iTunes/iTunes.exe" 
               (list "C:\lispbox-0.7\opus.mid"))

iTunes打开,但MIDI文件无法播放,即使从Windows命令提示符调用此方法也可以正常工作:

U:\>"C:\Program Files\iTunes\iTunes.exe" C:\lispbox-0.7\opus.mid

注意这个(带正斜杠):

CL-USER> (sb-ext:run-program "C:/Program Files/iTunes/iTunes.exe" 
               (list "C:/lispbox-0.7/opus.mid"))

具有相同的效果:iTunes打开,但文件未播放。

1 个答案:

答案 0 :(得分:2)

在列表版本中,您使用单个反斜杠,它被解析为转义序列。你需要使用双反斜杠。