通过shell文件运行Prolog Sicstus

时间:2011-02-05 11:31:40

标签: shell prolog malloc sicstus-prolog halt

我一直在尝试通过shell脚本运行文件并将其输出写入该文件。

脚本非常简单:

/usr/local/sicstus4.1.1/bin/sicstus -l run --goal“runh('examples / calls_matlab.pl',S),停止。” > “/ Users / Andrew / Dropbox / IP / modeling phase / rules.txt”

但是,当我运行它时,它失败并出现以下错误: sicstus(24883,0x7fff70916ca0)malloc: *对象0x10082b408的错误:释放对象的校验和不正确 - 对象可能在被释放后被修改。 * 在malloc_error_break中设置断点以进行调试

另一方面,如果我从目标中移除“停止”,一切都很好,但Sicstus仍在运行。

有没有办法退出sicstus,而不必通过我的shell脚本引发上述错误?

感谢您的时间。

安德烈亚斯

1 个答案:

答案 0 :(得分:1)

如果您运行脚本并使用/dev/null重定向输入管道,该怎么办?并删除暂停选项。

/usr/local/sicstus4.1.1/bin/sicstus -l run --goal "runh('examples/calls_matlab.pl', S)." > "/Users/Andrew/Dropbox/IP/modelling phase/rules.txt" < /dev/null

我做的是sicstus -l my_file.pl --goal "test_strategy(10,random,random)." < /dev/null

其中test_strategy是我的谓词,返回shell。

干杯, 丹