【发布时间】:2010-06-16 19:48:23
【问题描述】:
我正在尝试从 php 脚本中调用 swi-prolog,例如:
exec("start plwin.exe -f C:\\path\\load.pl -g run_from_file.", $os1);
print_r($os1);
我可以看到 prolog 窗口被打开并编译文件,但立即退出并显示退出状态为 1。我确定它没有执行我想要执行的谓词。
还有没有其他方法可以用适当的参数调用prolog并保持窗口open不自动退出?
更新:我将系统环境变量配置为安装 prolog 的路径。
【问题讨论】:
-
run_from_file 真的应该在它的末尾有一个点吗?
-
我假设因为我们通常使用
dot来终止prolog中的语句? -
我假设您使用的是 php CLI?您是否尝试过添加第三个 exec 参数来捕获退出状态?不执行启动命令以在新窗口中运行而是执行 plwin.exe 怎么样?此外,要等待来自 php 脚本的用户输入,从而使窗口保持打开状态,以便您有时间查看所有输出,请使用
fgets(STDIN); -
补充一下,我提到在同一个窗口中运行 plwin.exe 只是因为
fgets(STDIN);应用于运行 CLI 脚本的原始窗口,而不是由start命令生成的第二个窗口,已经来了又走了。
标签: php swi-prolog