मैं जो कुछ इस तरह का उपयोग करता है कुछ विरासत कोड के साथ काम कर रहा हूँ:FILE * संरचना मानचित्र को एक बफर में बनाएं?
void store_data(FILE *file);
हालांकि, मैं नहीं चाहता कि डिस्क पर डेटा स्टोर करना चाहते हैं, मैं स्मृति (char *buf
) में संग्रहीत करना चाहते हैं। मैं सभी कोड संपादित कर सकता हूं, लेकिन कोड पूरे स्थान पर कूदता है और fwrite
को पूरे स्थान पर फ़ाइल पर कॉल किया जाता है। तो क्या कोई आसान तरीका है, उदाहरण के लिए कि मैं FILE*
ऑब्जेक्ट को (ऑटो-बढ़ते) बफर पर मैप कर सकता हूं? मुझे पहले डेटा के कुल आकार को नहीं पता है।
समाधान पोर्टेबल होना चाहिए।
क्या पाइप शायद एक विकल्प हैं? – orlp
पाइप्स सी मानक में भी नहीं हैं। यूनिक्स पर, हाँ, आप एक पाइप लूप को उसी प्रक्रिया में एक और थ्रेड पर वापस ले सकते हैं जो मेमोरी बफर को लिखा था। विंडोज़ पर, आप सैद्धांतिक रूप से एक ही काम कर सकते हैं, लेकिन मैं उम्मीद करता हूं कि यह अनजान दुःख का स्रोत बन जाएगा, और यहां तक कि यूनिक्स पर भी मुझे 'tmpfile' दृष्टिकोण पर इतना अधिक लाभ नहीं मिलने के लिए बहुत अधिक काम करता है। – zwol