Fra*_*eth 2 erlang
在Erlang中,当资源的所有引用消失时,是否可以自动调用清理函数?例如,file:open/2如果file:close/1从未调用过,通过调用打开的本机文件句柄是否会被关闭?如果可以,那怎么办?如果不可能,是否存在使资源泄漏的Erlang成语不是问题?
file:open/2
file:close/1
Isa*_*sac 5
从file 文档:
file
IoDevice实际上是处理文件的进程的pid.此过程与最初打开文件的进程相关联.如果IoDevice链接到的任何进程终止,则文件将被关闭,进程本身将被终止.从此调用返回的IoDevice可用作IO函数的参数(请参阅io(3)).
因此,如果打开文件的进程终止,文件将自动关闭.
如果您正在使用OTP,并且希望在进程终止时确保文件已关闭,请添加file:close到该terminate函数.当然你的gen_*必须附在主管身上.
file:close
terminate
归档时间:
13 年,10 月 前
查看次数:
303 次
最近记录: