检查程序从计算机读取哪些文件 (C++)

Check what files a program reads from a computer (C++)

我有一个程序可以从计算机读取文件(用户给它的)并对这些文件执行操作。但是,该程序不起作用。我输入了一个具有有效路径的有效文件,程序说它正在读取这个有效文件,但是,它没有找到这些文件。我已经验证了我用来读取文件的方法是有效的。

所以,这提示了我的问题。 C++ 程序是否可以跟踪特定程序正在读取哪些文件,并告诉我它试图读取的路径?

对于 Linux,strace 实用程序就是答案(正如 Peter 在评论中提到的那样)。您可能已经安装了它,所以只需 运行 strace your_program_name 就可以看到 all 系统调用程序是 运行ning,它们的参数和 return 代码。您应该专注于 open 调用。