是否可以通过其pid来读取/写入事件来查看外部进程?特别是我想编写一个程序来计算外部进程写入stdout
,stderr
或FILE*
的字节数。期望的平台是Linux。注意:我无法更改目标进程的源代码。
答案 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
开始。