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