2010-04-12 14 views
5

मैं सी में fopen() और fwrite() का उपयोग कर सभी सामग्री को हटाने और फिर से लिखना शुरू कर सकता हूं या फ़ाइल के अंत में जोड़ना चाहता हूं। अगर मुझे फ़ाइल में कुछ ऑफसेट पर जाना है और कुछ बाइट्स ओवरराइट करना है तो क्या होगा?मैं fwrite() के साथ ऑफ़सेट वाई पर एक्स बाइट्स को कैसे ओवरराइट कर सकता हूं?

क्या यह कुछ फ़ंक्शन के साथ संभव है?

उत्तर

8

आप "rb+" विकल्प के साथ फ़ाइल खोल सकते हैं और फिर fseekSEEK_SET के साथ किसी विशिष्ट स्थान पर जाने के लिए उपयोग कर सकते हैं। rb+ इसे बाइनरी फ़ाइल के रूप में पढ़ने और लिखने दोनों के लिए खोलता है (फाइल सफल होने के लिए मौजूद होना चाहिए - यह एक नई फाइल नहीं बनाएगा)।

+0

वह केवल बाइट्स को ओवरराइट करेगा जो मैं चाहता हूं और संलग्न नहीं करूंगा? –

+0

सवाल यह है कि क्या यह आपके द्वारा लिखे गए फ़ाइल के बाकी हिस्सों को छोड़ देगा? –

+0

@Nazgulled: हां - फ़ाइल में एक विशिष्ट बाइट ऑफसेट के लिए SEEK_SET पदों। SEEK_CUR का उपयोग वर्तमान स्थान से ऑफ़सेट खोजने के लिए भी किया जा सकता है। –

संबंधित मुद्दे

 संबंधित मुद्दे