linux内核引用是否计算内核对象?

liv*_*m95 6 c linux

如果2个文件描述符被复制到同一个文件(即506STDOUT),是否会调用close(506)清除两者关联的对象并使其STDOUT无法使用?或者内核是否为其文件实现引用计数?

Gre*_*ill 7

内核实现引用计数,因此在指向它的所有文件句柄都关闭之前,内核对象不会关闭.

  • 我相信你,我向你投了票.你能为后代提供文件来源吗?这似乎是可能再次访问的问题类型. (4认同)
  • @San Jacinto:'dup(2)`和`close(2)`的引用意味着引用计数; 特别是*"如果fd是特定文件描述符的最后一个副本,则与之关联的资源被释放"*:http://linux.die.net/man/2/dup http://linux.die.net/人/ 2 /关闭 (3认同)

小智 5

引用计数器在内核中广泛使用,以避免由于并发分配和释放资源而导致的竞争条件.引用计数器只是与特定资源(例如存储器页面,模块或文件)相关联的atomic_t计数器.当内核控制路径开始使用资源时,计数器会原子地增加,当内核控制路径完成使用资源时,计数器会减少.当引用计数器变为零时,资源未被使用,并且可以在必要时释放它.

你可能会在乎看到这个,如果你想通过看对Linux内核的引用计数实现的概述.