题
如果2个文件描述符被dupped到相同的文件(即506
和STDOUT
),将调用close(506)
清理由两个相关联的对象和渲染STDOUT
无法使用?或者根本内核执行引用计数为它的文件?
解决方案
内核实现引用计数,所以内核对象未关闭,直到所有的文件句柄指向它被关闭。
其他提示
参考计数器被广泛内核内部使用,以避免竞态条件,由于并发分配和资源释放。基准计数器仅仅是与特定资源相关联的计数器atomic_t诸如存储器页面,模块,或一个文件。当一个内核控制路径开始使用资源计数器原子增加,并且在使用该资源的内核控制路径完成下降。当参考计数器变为零时,资源不被使用,并且其可以在必要时被释放。
您可能会小心看到这个,如果你想通过看的此以Linux内核的引用计数实现的概览。
不隶属于 StackOverflow