在C中观察读/写事件的外部进程?

时间:2014-12-18 13:14:12

标签: c linux events process watch

是否可以通过其pid来读取/写入事件来查看外部进程?特别是我想编写一个程序来计算外部进程写入stdoutstderrFILE*的字节数。期望的平台是Linux。注意:我无法更改目标进程的源代码。

1 个答案:

答案 0 :(得分:0)

要查看每次写入:

strace -ewrite -p$PID

要查看进程结束时写入的字节总数:

strace -ewrite -p$PID 2>&1 | { while read; do set $REPLY; n=$_; [ $n -gt 0 ] && let count+=$n; done; echo $count; }

以上假设进程$ PID已经运行;请注意,仅计算strace开始后的写入。要从$ PROCESS开始计算,请改为使用strace -ewrite $PROCESS开始。