2011-02-05 93 views
0

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

该脚本是非常简单的:

/usr/local/sicstus4.1.1/bin/sicstus -l运行--goal “RUNH( '的例子/ calls_matlab.pl',S),停止”。 > “/用户/安德鲁/ Dropbox的/ IP /建模阶段/ rules.txt”

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

另一方面,如果我从目标中删除“暂停”,一切正常,但Sicstus仍在运行。

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

我很感激你的时间。

安德烈亚斯

+0

这气味在SICStus与Matlab桥中的错误。抱怨写这个人的人。 – 2011-02-05 13:09:17

回答

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是我的谓词返回到外壳。

干杯, 丹