我使用带有以下参数的 dtrace 来计算特定进程的网络流量使用情况:
sudo dtrace -n 'syscall::recvfrom:return { @[pid] = sum(arg0); }'
我如何在目标 C 中使用 dtrace?
我曾经使用NSTask
上述参数启动 dtrace,但由于在终止 dtrace 后会显示此 dtrace 命令的结果,除非终止 dtrace,否则我看不到结果。由于 dtrace 停留在一个循环中以计算给定进程的流量,并且由于使用了 NSPipe,我无法使用[task terminate]
命令。所以我的主要问题是:
如何在有NSTask
或没有它的情况下(通过另一种方法)在目标 C 中使用 dtrace 并正确终止它然后查看结果?