我被分配到一个没有文档和大量非托管代码的项目。整个项目中都有明确声明的路径(事实上,它们是在不同地方设置为不同值的环境变量),指向输出文件。我已经更改了这些内容,以将输出重定向到工作区中的目录,但这些文件并没有生成,我也无法在工作区中找到它们。我相信它们是在文件系统的其他地方创建的。正如我之前提到的,通过使用脚本,可以在许多不同的地方分配环境变量。我以为我已经拿到了相关的剧本,但显然我遗漏了一些东西。
有没有一个实用程序可以用来跟踪特定可执行文件的所有文件输出(打印出所有读/写的文件名)?
我在Fedora下工作,这个项目主要是用Fortran编写的。
strace将打印每个系统调用的详细信息,您可以简单地过滤open()调用的输出。
一个选项是lsof
,例如
lsof -p <PID>