如何查看应用程序命令期间访问哪些文件?

Mar*_*eck 1 linux linux-device-driver

如果我在Linux中运行一些命令行应用程序,如何判断该进程访问(读取和/或写入)哪些文件?我想我需要在文件系统驱动程序中放置一些钩子并重新编译内核,或类似的东西?有没有更简单的方法?

saw*_*ust 5

strace是一个命令,将显示应用程序所做的每个系统调用.

从手册页:

在最简单的情况下,strace运行指定的命令直到它退出.它拦截并记录由进程调用的系统调用和进程接收的信号.每个系统调用的名称,其参数和返回值都打印在标准错误或使用-o选项指定的文件上.

例如,每个open(),read()和write()操作都将显示参数和返回码.