2011-02-09 20 views
6

जैसा कि हम विंडोज़ ईओएल में जानते हैं, सीआरएलएफ और मैक में लिनक्स एलएफ और सीआर में है। (more_info)सी फ़ाइल के माध्यम से विंडोज में लिनक्स या मैक फ़ाइल कैसे बनाई गई *?

मैं एक प्रोग्राम लिखना चाहता हूं जो लिनक्स और मैक के साथ-साथ विंडोज़ में लाइन द्वारा विन फाइल लाइन के रूप में पढ़ता है। फ़ाइल खोलने के लिए मैं "आरटी" मोड में फॉपेन का उपयोग करूंगा, लेकिन मुझे नहीं पता कि लाइनें कैसे पढ़ती हैं। विंडोज़ के तहत सीआरएलएफ और एलएफ तक fgets पढ़ता है, लेकिन मैं इसे ईओएल = सीआर फाइलों के लिए भी काम करना चाहता हूं।

तो समाधान क्या है? अग्रिम में धन्यवाद।

+5

लिनक्स एलएफ नहीं सीआर का उपयोग करता है। मैकोज़ 9 ने सादा सीआर का इस्तेमाल किया। –

+0

हाँ आप सही हैं PiotrLegnica http://mc-computing.com/languages/CR_LF.htm यह पूरी सूची है। –

+3

@ मिहरान: मैकॉक्स एलएफ का उपयोग करता है। –

उत्तर

1

तो मुझे मेरे लिए कुछ भी अच्छा नहीं मिला और मैंने अपना खुद का my_fgets फ़ंक्शन लिखने का निर्णय लिया जो शरीर में fgetc का उपयोग करता है।

1

जब तक आप आरटी मोड (रीड-टेक्स्ट) में फ़ाइल खोलते हैं, तो आपको ठीक होना चाहिए। fgets() एक लाइन वापस आ जाएगा, और प्लेटफार्मों के बीच सूक्ष्म मतभेदों को संभालेगा। फ़ाइल में लिखते समय, '\ n' को ईओएल के रूप में उपयोग करें, और आपको अपने प्लेटफ़ॉर्म के लिए सही पंक्ति समाप्ति मिल जाएगी। पाठ मोड में फ़ाइल खोलने का यही कारण है। यदि आप बाइनरी मोड का उपयोग करते हैं, तो आपको अपने सॉफ़्टवेयर में सभी अलग-अलग लाइन समाप्ति को संभालना होगा।

+0

मुझे लिनक्स सर्वर से विंडोज़ में अपने क्लाइंट प्रोग्राम के माध्यम से फ़ाइल मिल रही है। यही कारण है कि ज्यादातर मामलों में जिन फ़ाइलों से मैं पढ़ूंगा उनमें लिनक्स प्रारूप ईओएल होगा। –

+0

@ मिहरान: इससे कोई फर्क नहीं पड़ता, धाराओं के लिए अंतर आपके लिए संभाला जाएगा, इसलिए इसके बारे में चिंता न करें ... जब तक आप विंडोज से लिनक्स लाइन के अंत में फाइलें लिखना नहीं चाहते :) –

+0

मैंने कोशिश की है। यह काम नहीं करता है :(एलएफ और सीआरएलएफ विंडोज़ में काम करता है, लेकिन सीआर नहीं। मैक और लिनक्स में इसे आजमाएं, लेकिन सुनिश्चित करें कि सब कुछ ठीक रहेगा। –

2

"टी" मोड में खोलने के लिए, फ़ाइल को उस प्लेटफ़ॉर्म के अनुरूप होना चाहिए जो आप चल रहे हैं। अन्यथा आपको केवल बाइनरी मोड में खोलना होगा, और अंतर को स्वयं को हल करना होगा।

सी लाइब्रेरी आपको ऐसे प्रोग्राम लिखने में मदद करती है जो विभिन्न प्लेटफ़ॉर्म पर लगभग समान रूप से काम करती है, लेकिन फ़ाइलों को "क्रॉस पढ़ने" का समर्थन नहीं करती है।

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