में आर और आरबी के बीच अंतर क्या है मैंने सी में फॉपेन का उपयोग करने की कोशिश की, दूसरा पैरामीटर ओपन मोड है। दो मोड "आर" और "आरबी" मुझे बहुत भ्रमित करते हैं। ऐसा लगता है कि वे वही हैं। लेकिन कभी-कभी "आरबी" का उपयोग करना बेहतर होता है। तो, "आर" क्यों मौजूद है? विस्तार से या उदाहरणों के साथ मुझे यह समझाएं। धन्यवाद।fopen
fopen
उत्तर
आपको टेक्स्ट फ़ाइलों को खोलने के लिए "r"
का उपयोग करना चाहिए। विभिन्न ऑपरेटिंग सिस्टमों में टेक्स्ट संग्रह करने के कुछ अलग तरीके हैं, और यह सही अनुवाद करेगा ताकि आपको स्थानीय ऑपरेटिंग सिस्टम की मूर्खता के बारे में जानने की आवश्यकता न हो। उदाहरण के लिए, आपको पता चलेगा कि कोड कहां चलती है, इस पर ध्यान दिए बिना, नईलाइन हमेशा एक सरल "\n"
के रूप में दिखाई देगी।
यदि आप गैर-पाठ फ़ाइलों को खोल रहे हैं, तो आपको "rb"
का उपयोग करना चाहिए, क्योंकि इस मामले में, अनुवाद उचित नहीं हैं।
पढ़ें और पढ़ें यह प्लेटफ़ॉर्म-निर्भर है। यूनिक्स पर, टेक्स्ट-मोड कुछ खास नहीं करता है, इसलिए यह अभी भी '\ r \ n' को' \ n' के रूप में संभाल नहीं पाएगा। –
विचार यह है कि '" r "' उसी सिस्टम पर "टेक्स्ट फ़ाइल" को सही तरीके से खोल देगा। यदि आप लिनक्स पर "आर" के साथ एक विंडोज़ टेक्स्ट फ़ाइल खोल रहे हैं, तो आपको निश्चित रूप से अलग-अलग लाइन समापन सम्मेलनों का ख्याल रखना होगा। –
यदि आप लिनक्स सिस्टम पर विंडोज में लिखी गई फाइल खोलते हैं, तो आप व्यवहार देखेंगे। आपको फ़ाइल को यूनिक्स टेक्स्ट फ़ाइल में कनवर्ट करने की आवश्यकता है। फ़ाइल को खोलने के बाद, आप 'dos2unix' नामक प्रोग्राम के साथ आसानी से ऐसा कर सकते हैं, या vim में टाइप करें, टाइप करें,': se ff = unix', हिट रिटर्न, और फिर सेव करें। –
बाइनरी फ़ाइल खोलने के लिए "आरबी" का उपयोग करें। फिर फ़ाइल के बाइट्स एनकोड नहीं किया जाएगा जब आप पढ़ सकते हैं उन्हें
- "आर" Translated mode
- "rb" के लिए "आरटी" रूप में ही है गैर अनुवाद मोड है।
यह कम से कम विंडोज पर एक फर्क पड़ता है। विवरण के लिए वह लिंक देखें।
'" आरटी "' गैर-मानक है। –
लिनक्स पर, और सामान्य रूप से यूनिक्स, "r"
और "rb"
समान हैं। अधिक विशेष रूप से, पॉइंटर fopen()
द्वारा पाठ मोड में फ़ाइल में डालने और बाइनरी मोड में यूनिक्स पर समान तरीके से व्यवहार करता है। विंडोज़ पर, और सामान्य रूप से, सिस्टम पर जो "newlines" का प्रतिनिधित्व करने के लिए एक से अधिक वर्णों का उपयोग करते हैं, पाठ मोड में खोला गया फ़ाइल व्यवहार करता है जैसे कि ये सभी वर्ण केवल एक वर्ण हैं, '\n'
।
यदि आप किसी भी सिस्टम पर टेक्स्ट फ़ाइलों को पोर्टेबल रूप से पढ़ना/लिखना चाहते हैं, तो , और "w"
fopen()
में उपयोग करें। यह गारंटी देगा कि फाइलें लिखी और ठीक से पढ़ी गई हैं। यदि आप बाइनरी फ़ाइल खोल रहे हैं, तो "rb"
और "wb"
का उपयोग करें, ताकि दुर्भाग्यपूर्ण न्यूलाइन-अनुवाद आपके डेटा को गड़बड़ न करे।
ध्यान दें कि आपके लिए न्यूलाइन अनुवाद करने वाली अंतर्निहित प्रणाली का नतीजा यह है कि आप fseek(file, 0, SEEK_END) का उपयोग करके फ़ाइल से पढ़ सकते बाइट्स की संख्या निर्धारित नहीं कर सकते हैं।
अंत में, पर comp.lang.c FAQs पर देखें।
अधिकांश पॉज़िक्स सिस्टम पर, इसे अनदेखा किया जाता है। लेकिन, सुनिश्चित करने के लिए अपने सिस्टम की जांच करें।
XNU
मोड स्ट्रिंग भी पत्र 'बी' या तो के रूप में अंतिम वर्ण या दो चरित्र ऊपर वर्णित तार में से किसी में पात्रों के बीच एक चरित्र के रूप में शामिल कर सकते हैं। यह आईएसओ/आईईसी 98 99: 1 99 0 ('आईएसओ सी 0 9') के साथ संगतता के लिए सख्ती से है और इसका कोई प्रभाव नहीं है; 'बी' को नजरअंदाज कर दिया जाता है।
लिनक्स
मोड स्ट्रिंग भी पत्र 'बी' या तो एक आखिरी चरित्र के रूप में या दो चरित्र ऊपर वर्णित तार में से किसी में पात्रों के बीच एक चरित्र के रूप में शामिल कर सकते हैं। यह सख्ती से सी 8 9 के साथ संगतता के लिए है और इसका कोई प्रभाव नहीं है; लिनक्स समेत सभी पॉज़िक्स अनुरूप प्रणाली पर 'बी' को अनदेखा किया जाता है। (अन्य सिस्टम टेक्स्ट फ़ाइलों और बाइनरी फ़ाइलों को अलग-अलग इलाज कर सकते हैं, और 'बी' जोड़ना अच्छा विचार हो सकता है यदि आप बाइनरी फ़ाइल में I/O करते हैं और उम्मीद करते हैं कि आपका प्रोग्राम गैर-यूनिक्स वातावरण में पोर्ट किया जा सकता है।)
- 1. fopen()
- 2. fopen()
- 3. fopen
- 4. fopen
- 5. PHP fopen()
- 6. पीएचपी: fopen() अनुमति अस्वीकृत
- 7. fopen deprecated चेतावनी
- 8. फ़ाइल पीएचपी fopen
- 9. खुला और fopen समारोह
- 10. fopen अपने सर्वर
- 11. आईफोन पर fopen() कैसे करें?
- 12. PHP5 स्ट्रीम खोलने में असफल रहा: fopen
- 13. एक टेक्स्ट फ़ाइल पढ़ना - fopen बनाम ifstream
- 14. तेज़ क्या है? file_put_contents(); fopen(); fwrite(); fclose() ;?
- 15. CreateFile बनाम fopen बनामस्टीम लाभ और नुकसान?
- 16. PHP: फ़ोल्डर बनाने के लिए fopen
- 17. PHP: fopen: ऐसी कोई फ़ाइल या निर्देशिका
- 18. fopen/fopen_s और फ़ाइलों को लिखना
- 19. fopen अदृश्य रूप में विफल रहता है
- 20. कैसे समयबाह्य करने fopen करने के लिए ठीक से
- 21. php: // इनपुट - यह fopen() में क्या करता है?
- 22. fopen फ़ाइल बनाता है, लेकिन अनुमतियों को कैसे बदला जाए?
- 23. MATLAB में fopen ('text.txt', 'wt') का क्या अर्थ है?
- 24. PHP fopen() त्रुटि: स्ट्रीम खोलने में विफल: अनुमति
- 25. PHP में fopen ($ url) और कर्ल का उपयोग करने के बीच महत्वपूर्ण अंतर क्या हैं?
- 26. क्यों fopen() या open() त्रुटि कोड लौटने के बजाय इरनो का उपयोग करें?
- 27. fopen() एक शून्य सूचक लौटने, लेकिन फाइल निश्चित रूप से मौजूद है
- 28. इसे लिखने के बाद एक नई ब्राउज़र विंडो में फ़ाइल खोलें (fopen के साथ)
- 29. विंडोज़ में, क्या मुझे CreateFile या fopen, पोर्टेबिलिटी को अलग करना चाहिए?
- 30. PHP fopen() फ़ाइल नहीं बना रहा है अगर यह पहले से मौजूद नहीं है
बाइनरी http://c-faq.com/stdio/textvsbinary.html – Terrance