tags:

views:

118

answers:

2

When using file:read_file(x) is it necessary to close the returned file?

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

No it is not necessary to close the files for file:read_file, and file:consult.

How would you close it anyway, if you don't even have the file descriptor at hand?

Zed
+7  A: 

It is not a file, but the contents of the file that is returned. Thus, no file to close. Try changing the variable name to Data or similar as in the code below:

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

Data will then have the contents of the file "maillog.sample". The function file:read_file/1 will open, read and close the file for you, all in one go.

Koistinen
Wow im dumb, since the return tuple is similar to output of file:open(..) I just assumed it was giving back a device. Thanks
jdc0589