拦截来自Python的C函数调用

时间:2014-05-14 21:06:53

标签: python c

有没有办法在Python中拦截对二进制文件的C函数调用(例如:写入文件)?

我需要在python上执行Linux上的二进制文件并捕获它写入日志文件的输出。日志文件名是不可预测的。

1 个答案:

答案 0 :(得分:2)

要做的就是创建一个命名管道。如果logfile是日志文件的名称:

import os
import subprocess

LOGFILE = 'somefile.log'

if not os.path.exists(LOGFILE):
    os.mkfifo(LOGFILE)
proc = subprocess.Popen([YOUR_PROGRAM])
with open(LOGFILE) as log:
    data = log.read()  # process your data

proc.wait()