Запуск Prolog Sicstus через файл оболочки

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

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

/usr/local/sicstus4.1.1/bin/sicstus -l run --goal "runh ('examples / Call_matlab.pl', S), halt." > "/ Пользователи / Андрей /Dropbox/IP/ фаза моделирования /rules.txt"

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

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

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

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

Andreas

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

Ура, Дэн

Другие вопросы по тегам