Prolog - 查找当前目录,'tell'谓词的相对目录

时间:2010-04-14 12:31:41

标签: logic prolog swi-prolog

我无法弄清楚如何让prolog吐出我想要的文本文件。我目前正在做一堆操作,然后使用

tell('output.txt')

记录输出。现在的问题是,当我这样做时,它会在SWI \ bin \文件夹中创建此文件。我想知道是否有办法让它在包含实际.pl文件的目录中创建此文件。因此,即使文件被移动(它将是),文本文件也会在源文件的位置创建。

长话短说,有没有办法在查询源文件后获取源文件的位置?

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以使用source_file/1获取所有已加载文件的名称。

来自SWI-Prolog手册:

  

source_file(?File)

     

如果File是加载的Prolog源文件,则为true。文件是绝对的    源文件的规范路径。