Laz*_*zer 7 c c++ unix shell perl
我有一个应用程序(我没有的源代码),可以从这样的命令行调用
$ ./notmyapp
Run Code Online (Sandbox Code Playgroud)
我想知道应用程序写入的所有位置.它输出正在调用的目录中的一些文件,但我需要确保这些文件是唯一创建的文件.
因此,我需要隔离应用程序,以找出它在运行时创建/编辑的所有文件.
我怎样才能做到这一点?
某种方式使用Perl或C或C++?这些语言中的任何标准库都有办法做到这一点吗?
raf*_*afl 24
strace,ktrace/ kdump,truss,dtruss,或任何其他程序的平台提供了跟踪系统调用,也可能是你在找什么.
期待任何这些产品的大量输出.要确定应用程序正在读取和写入的文件,您可能希望将输出限制为几个系统调用.strace -eopen ./notmyapp, 例如.
应用程序也可以分叉子进程来完成它的一些工作.对于大多数系统调用跟踪器,您还必须具体跟踪这些子进程.有了strace,那就是strace -f ./notmyapp.
在unix系统中,您可以使用strace打印出所有系统调用的跟踪以及进程接收的信号:
$ strace ./notmyapp
Run Code Online (Sandbox Code Playgroud)
grep 可用于将输出限制为系统调用的子集:
$ strace ./notmyapp 2>&1 | egrep '(open|write)'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
302 次 |
| 最近记录: |