是否有任何应用程序可以检查正在运行的程序读取、修改等的文件,并可以向我提供这些文件的列表?
答案1
对于 Windows,请查看两个 Sysinternals 工具(已被 Microsoft 收购):
- 进程探索器:在任何给定时间正在使用哪些文件句柄。
如果 [ProcessExplorer] 处于句柄模式,您将看到顶部窗口中选择的进程已打开的句柄;如果 Process Explorer 处于 DLL 模式,您将看到进程已加载的 DLL 和内存映射文件。
- 进程监控:跟踪某个进程(或路径,或......)的所有文件系统访问
进程监视器是 Windows 的一个高级监视工具,可显示实时文件系统、注册表和进程/线程活动。
- 处理是另一个 Sysinternals 工具,类似于 Process Explorer,它列出了进程文件句柄,但它是一个控制台应用程序,与其他两个工具不同。
答案2
这取决于你使用的操作系统,但类似 BSD 的操作系统(如 Mac OS X)具有fs_usage。
答案3
在 unix 平台上,您可以使用它lsof | grep <pid> OR lsof -p <pid>
来查看特定进程打开的所有文件。但是它不会列出正在读取或写入的文件。但是可以编写一个脚本来计算文件的校验和,以查明是否正在写入。