找出进程写入的位置

时间:2014-11-24 12:41:10

标签: python

有没有办法找出子进程写入和读取的文件?

理想情况下,我想创建一些子进程,将其包装在一个函数中,然后查询该子进程以查看子进程触及的文件:

p = sp.Popen(['ls', '-l'], stdout=sp.PIPE)
wp = watch_files(p)
out, err = wp.communicate()

print wp.files_read(), wp.files_written()

watch_files是我要实施的内容。如果这样的事情存在或如何实施它的任何想法?

1 个答案:

答案 0 :(得分:3)

在Unix上,我从strace -fTt开始,寻找statopen系统调用。

您可以捕获strace的输出 - 默认情况下strace打印到STDERR。您可以将其输出“保存”到-o的日志文件中。

您可能会发现在查看当前文件描述符(打开文件)的/proc/<pid>/fd中有一些里程。