如果2个文件描述符被dupped到相同的文件(即506STDOUT),将调用close(506)清理由两个相关联的对象和渲染STDOUT无法使用?或者根本内核执行引用计数为它的文件?

有帮助吗?

解决方案

内核实现引用计数,所以内核对象未关闭,直到所有的文件句柄指向它被关闭。

其他提示

参考计数器被广泛内核内部使用,以避免竞态条件,由于并发分配和资源释放。基准计数器仅仅是与特定资源相关联的计数器atomic_t诸如存储器页面,模块,或一个文件。当一个内核控制路径开始使用资源计数器原子增加,并且在使用该资源的内核控制路径完成下降。当参考计数器变为零时,资源不被使用,并且其可以在必要时被释放。

您可能会小心看到这个,如果你想通过看的以Linux内核的引用计数实现的概览。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top