在序言中获取运行脚本名称

问题描述 投票:0回答:2

prolog (SWI-Prolog) 中是否有某种方法可以获取执行脚本的名称,就像 perl 中的 FILE 或 C 中的 arg[0] ?

我阅读了文档,但我没有看到任何相关内容。文档实际上没有提供太多支持,并且示例很少:/

感谢您的帮助。

swi-prolog
2个回答
0
投票

current_prolog_flag(argv, Argv)
将为您提供用于调用 Prolog 的命令行参数,http://www.swi-prolog.org/pldoc/doc_for?object=current_prolog_flag/2


0
投票

@user1812457 建议的

argv
标志不会包含脚本文件名,因此您需要做的是同时获取
os_argv
argv
,然后查看差异。我用过:

script_name(Name) :-
  current_prolog_flag(argv, Argv),
  current_prolog_flag(os_argv, OsArgv),
  append(Os, Argv, OsArgv),
  last(Os, Name).
© www.soinside.com 2019 - 2024. All rights reserved.