对文件描述符引用的对象的引用计数

时间:2017-07-10 22:42:30

标签: c linux posix

是否有可能以编程方式找出已打开linux上给定文件描述符引用的对象的进程数?

如果是,如果它是文件,管道或其他什么有什么区别吗?

1 个答案:

答案 0 :(得分:2)

奇怪的是,fuser程序及其输出已由POSIX标准化。您可以使用popen调用它并解析其输出。除非用户具有特权,否则列表将不完整,并且这种方法本身就容易发生竞争。

在Linux上,您可以读取/proc/*/fd目录的内容并检查是否引用了相同的文件描述符。 (关于特权和种族的相同评论适用。)如果您对引用同一文件 description 对象感兴趣(它们不仅共享同一文件,而且因为它们是由{创建的,因此也是相同的文件偏移量) {1}} / dupdup2),您必须使用fork系统调用进一步过滤此内容。