ctypesモジュールを通じて呼び出されている共有ライブラリを使用しています。私は、このモジュールに関連するstdoutを、自分のプログラムでアクセスできる変数またはファイルにリダイレクトしたいと思います。しかし、ctypesはsys.stdoutとは別のstdoutを使います。ctypesモジュールを使用してPythonから呼び出された共有ライブラリからのプリント出力をキャプチャ
私はlibcで問題があることを実証します。誰もがコピーしたコードを貼り付けている場合は、それらは、2行目
import ctypes
libc = ctypes.CDLL('libc.so.6')
from cStringIO import StringIO
import sys
oldStdOut = sys.stdout
sys.stdout = myStdOut = StringIO()
print 'This text gets captured by myStdOut'
libc.printf('This text fails to be captured by myStdOut\n')
sys.stdout = oldStdOut
myStdOut.getvalue()
にファイル名を変更する必要があります、私はctypesのに関連付けられているstdoutが共有ライブラリをロードキャプチャすることができる方法はありますか?