Запуск Prolog Sicstus через файл оболочки - PullRequest
0 голосов
/ 05 февраля 2011

Я пытался запустить файл через скрипт оболочки и записать его вывод в этот файл.

Сценарий очень прост:

/ usr / local / sicstus4.1.1/ bin / sicstus -l run --goal "runh (examples / CallSmatlab.pl ', S), halt."> "/ Users / Andrew / Dropbox / IP / этап моделирования / rules.txt"

Однако, когда я запускаю это, происходит сбой со следующей ошибкой: sicstus (24883,0x7fff70916ca0) malloc: *ошибка для объекта 0x10082b408: неверная контрольная сумма для освобожденного объекта - объект, вероятно, был изменен после освобождения.* установить точку останова в malloc_error_break для отладки

С другой стороны, если я уберу "остановку" из цели, все в порядке, но Sicstus все еще работает.

Есть лиспособ выйти из sicstus, не неся ошибку выше через мой скрипт?

Я ценю ваше время.

Андреас

1 Ответ

1 голос
/ 06 марта 2012

Что если вы запустите свой скрипт и перенаправите входной канал с помощью /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 - мой предикат, который возвращается в оболочку.

Приветствия, Дэн

...