在程序中使用别名关闭文件

时间:2013-09-18 16:00:24

标签: prolog

我的程序中有这个代码:

open('myfile.txt',append, Stream,[alias(final)]),
some instructions
close(final).

如果我在close(final)之前有错误,当我重建我的代码时,我有这个错误:

PERMISSION ERROR, CANNOT OPEN alias(final)

如何解决此问题?

1 个答案:

答案 0 :(得分:2)

使用SWI-Prolog setup_call_cleanup/3确保您的文件始终关闭,即使在打开文件和关闭文件之间发生错误也是如此。类似的东西:

setup_call_cleanup(
    open('myfile.txt',append, Stream,[alias(final)]),
    some_instructions
    close(final)
)

有关更多信息,请参阅此谓词的SWI-Prolog文档。