के साथ पायथन से बुलाए गए साझा लाइब्रेरी से प्रिंट आउटपुट कैप्चर करना मैं एक साझा लाइब्रेरी के साथ काम कर रहा हूं जिसे ctypes मॉड्यूल के माध्यम से बुलाया जा रहा है। मैं इस मॉड्यूल से जुड़े एक स्टैरआउट को एक चर या एक फ़ाइल में रीडायरेक्ट करना चाहता हूं जिसे मैं अपने प्रोग्राम में एक्सेस कर सकता हूं। हालांकि ctypes sys.stdout से एक अलग stdout का उपयोग करता है।सीटीपीएस मॉड्यूल
मैं 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()
पर फ़ाइल नाम बदलने के लिए हो सकता है वहाँ किसी भी तरह से मैं stdout कि ctypes के साथ जुड़े लोड साझा लाइब्रेरी पर कब्जा कर सकता है?