2011-02-05 8 views
0

私はシェルスクリプトでファイルを実行し、そのファイルに出力を書き込もうとしています。Prolog Sicstusをシェルファイルで実行しています

スクリプトは非常に単純です:

/usr/local/sicstus4.1.1/bin/sicstusが--goal実行-l "runh( '例/ calls_matlab.pl'、S)、停止を。" > "/ユーザ/アンドリュー/ Dropboxの/ IP /モデリングフェーズ/ rules.txt"

私はこれを実行したときしかし、それは次のエラーで失敗します。 sicstus(24883,0x7fff70916ca0)malloc関数:オブジェクトの*エラー0x10082b408:解放されたオブジェクトのチェックサムが正しくありません。オブジェクトは解放された後におそらく変更されました。 *は、私がゴールから「停止」を削除した場合、一方

をデバッグするmalloc_error_breakにブレークポイントを設定罰金、すべての、しかしSicstusがまだ実行されています。

私のシェルスクリプトで上記のエラーが発生することなく、sicstusを終了する方法はありますか?

お時間をいただきありがとうございます。

アンドレアスあなたのスクリプトを実行し、/dev/nullで入力パイプをリダイレクトする場合、どのよう

+0

これはSICStus-Matlabのブリッジのバグの匂い。それを書いた人に苦情を言いなさい。 –

+0

matlabで生成されたファイルは完全に有効です。実際に私がプロローグで実行している場合(シェルスクリプトがなければ、すべて問題ありません)エラーを引き起こす原因は、目標を実行した直後の停止です。私は、テキストファイルへの出力を終了する前に停止しようとしていると思われます。私は代替ソリューションを考えることができません:( – kkudi

答えて

1

?停止オプションを削除します。私が何をしたか

/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

test_strategyがシェルに戻り、私の述語であるsicstus -l my_file.pl --goal "test_strategy(10,random,random)." < /dev/null

ました。

乾杯、 ダン

関連する問題