आप अपने C
कोड से लिखे जाने से पहले stdout
को अवरुद्ध कर सकते हैं, फिर आउटपुट मान को संसाधित करें।
import sys
import StringIO
buffer = StringIO.StringIO()
# redirect stdout to a buffer
sys.stdout = buffer
# call the c code with ctypes
# process the buffer
# recover the old stdout
sys.stdout = sys.__stdout__
हालांकि, यह सी कोड के लिए एक बफर पारित करने के लिए आसान है और अच्छे होगा, और के बजाय printf
उत्पादन मूल्यों आईएनजी आप उन्हें प्रदान की बफर में लिखेंगे।
या, बेहतर अभी तक, आप byref
एक c_char_p
गुजारें सकता, C
कोड के अंदर इसके लिए स्मृति को आबंटित, उत्पादन मूल्य के साथ बफर अद्यतन तो Python
में बफर का उपयोग करें। स्मृति को डिलीकेट करने के लिए मत भूलना (आपको free
फ़ंक्शन के लिए ctypes
रैपर बनाना चाहिए)।
स्रोत
2010-06-28 15:09:03
क्या आप पाइथन में सी printf को अधिभारित करना चाहते हैं? – luc
अगर ओवरलोडिंग, ओएस पर क्या? – Arlaharen
अगर ओवरलोडिंग मेरी समस्या का समाधान करेगी, तो मैं कोशिश करूंगा। मैं उबंटू 9 .10 का उपयोग करता हूं। – Framester