2010-01-08 48 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

無論如何,如果你甚至沒有文件描述符,你將如何關閉它?