首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Erlang中的资源清理

Erlang中的资源清理
EN

Stack Overflow用户
提问于 2012-02-16 23:37:20
回答 1查看 397关注 0票数 2

在Erlang中,当对资源的所有引用都消失时,是否可以自动调用清理函数?例如,如果从未调用过file:close/1,通过调用file:open/2打开的本机文件句柄会被关闭吗?如果这是可能的,它是如何完成的?如果不可能,有没有Erlang习惯用法可以让这样的资源泄漏不成问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-16 23:46:49

file documentation

IoDevice实际上是处理文件的进程的pid。此进程链接到最初打开该文件的进程。如果IoDevice所链接的任何进程终止,该文件将被关闭,进程本身也将终止。从该调用返回的IoDevice可以用作IO函数的参数(参见io(3))。

因此,如果打开该文件的进程终止,该文件将自动关闭。

如果您使用的是动态口令,并且希望绝对确保在进程终止时文件已关闭,请在terminate函数中添加file:close。当然,您的gen_*必须连接到主控引擎。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9314171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档