prolog (SWI-Prolog) 中是否有某种方法可以获取执行脚本的名称,就像 perl 中的 FILE 或 C 中的 arg[0] ?
我阅读了文档,但我没有看到任何相关内容。文档实际上没有提供太多支持,并且示例很少:/
感谢您的帮助。
current_prolog_flag(argv, Argv)
将为您提供用于调用 Prolog 的命令行参数,http://www.swi-prolog.org/pldoc/doc_for?object=current_prolog_flag/2
@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).