如何在C中查找保存文件的进程
我想找出哪些进程在C代码(Linux)中保存一些文件 我想到的一种方法是查看所有正在运行的进程的如何在C中查找保存文件的进程,c,linux,C,Linux,我想找出哪些进程在C代码(Linux)中保存一些文件 我想到的一种方法是查看所有正在运行的进程的proc//fd。 但是,由于扫描所有进程的fd文件下的所有文件,这将花费很长时间 你能给出另一种更轻量级的方法吗 提前感谢。枚举/proc下的所有数字伪文件,然后检查每个伪文件的fd/目录,这是执行此操作的标准方法。这是像“lsof”这样的实用程序的典型实现方式。所有这些数据都保存在内存中,因此在大多数情况下访问这些数据应该足够快。lsof如何计算其输出?这是一种有用的方法,但我想在我的应用程序中使
proc//fd
。
但是,由于扫描所有进程的fd
文件下的所有文件,这将花费很长时间
你能给出另一种更轻量级的方法吗
提前感谢。枚举/proc下的所有数字伪文件,然后检查每个伪文件的fd/目录,这是执行此操作的标准方法。这是像“lsof”这样的实用程序的典型实现方式。所有这些数据都保存在内存中,因此在大多数情况下访问这些数据应该足够快。lsof如何计算其输出?这是一种有用的方法,但我想在我的应用程序中使用这些功能。`这需要很长时间。`为什么?你做了一些测试吗?我还没有测试。但我所描述的方式会导致对文件系统的大量访问,即使几乎所有进程都与文件无关。访问文件系统是通过内核完成的,所以我预测查看
/proc
会导致很大的开销。目前我正在开发的应用程序速度太慢,我将采用更轻量级的解决方案。当我建议lsof
时,我的意思是:你读过源代码了吗?