2010-01-08 18 views
7

Al usar file:read_file(x) ¿es necesario cerrar el archivo devuelto?Erlang, ¿Es necesario cerrar el archivo aquí?

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

'File' contiene el contenido del archivo ... – Zed

+0

Para la pregunta correspondiente al usar' file: open/2', vea [esta pregunta] (http://stackoverflow.com/q/28066839/113848) . – legoscia

Respuesta

10

No es un archivo, sino el contenido del archivo que se devuelve. Por lo tanto, no hay archivo para cerrar. Intente cambiar el nombre de la variable de datos o similar que en el código de abajo:

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

de datos tendrá entonces el contenido del archivo "maillog.sample". El archivo de función: archivo_de_lectura/1 abrirá, leerá y cerrará el archivo por usted, todo de una vez.

+0

Wow im tonto, ya que la tupla de retorno es similar a la salida del archivo: abrir (...) Supuse que estaba devolviendo un dispositivo. Gracias – jdc0589

8

No, no es necesario cerrar los archivos de file:read_file, y file:consult.

¿Cómo lo cerraría de todos modos, si ni siquiera tiene el descriptor de archivo a mano?

Cuestiones relacionadas