2010-01-08 74 views
7

使用file:read_file(x)时是否需要关闭返回的文件?Erlang,是否有必要在这里关闭文件?

{ok, File} = file:read_file("maillog.sample"), 
file:close(File), 
+4

'File'包含文件的内容... – Zed 2010-01-08 07:26:09

+0

对于使用'file:open/2'时的相应问题,请参见[this question](http://stackoverflow.com/q/28066839/113848) 。 – legoscia 2015-01-21 12:44:28

回答

10

它不是一个文件,而是返回的文件内容。 因此,没有文件关闭。 尝试改变变量名的数据或类似的如在下面的代码:然后

{ok, Data} = file:read_file("maillog.sample"), 

数据将具有文件“maillog.sample”的内容。 功能文件:read_file/1将会打开,读取并关闭您的文件,一次完成。

+0

哇,因为返回元组类似于文件的输出:打开(..)我只是假设它是给出一个设备。 谢谢 – jdc0589 2010-01-10 01:37:18

8

不,没有必要关闭文件file:read_file,和file:consult

无论如何,如果你甚至没有文件描述符,你将如何关闭它?