मैं जी की ++ अंदर मानक ftell और fseek विकल्पों का उपयोग कर पूर्णांक अतिप्रवाह में चल रहा में बड़ी फ़ाइलों को पढ़ने, लेकिन मुझे लगता है मैं गलत था, क्योंकि ऐसा लगता है कि ftell64 और fseek64 उपलब्ध नहीं हैं। मैं खोज कर रहा हूं और lseekऑफ 64_t डेटाटाइप के साथ कई वेबसाइटें संदर्भित प्रतीत होती हैं, लेकिन मुझे fseek के बराबर कुछ संदर्भ देने वाले कोई उदाहरण नहीं मिला है। फिलहाल जिन फाइलों में मैं पढ़ रहा हूं वे कम से कम दोगुनी होने की उम्मीद के साथ 16 जीबी + सीएसवी फाइलें हैं।की तलाश है और एक लिनक्स सी ++ आवेदन
किसी भी बाहरी पुस्तकालयों के बिना fseek/ftell जोड़ी के समान संरचना को प्राप्त करने के लिए सबसे सरल तरीका क्या है? मेरा आवेदन अभी 4.x के लिए मानक जीसीसी/जी ++ पुस्तकालयों का उपयोग कर काम करता है।
तो, मैंने आपके निर्देशों का पालन किया और सब कुछ फाइल संकलित कर रहा है। लेकिन मुझे लगता है कि अभी भी एक अतिप्रवाह हो रहा है। आप fopen64 के साथ O_LARGEFILE पैरामीटर का उपयोग कैसे करेंगे? –
यदि आप -D_FILE_OFFSET_BITS = 64 के साथ संकलित करते हैं, तो O_LARGEFILE स्वचालित रूप से आपूर्ति की जाती है। यह एक मानक ध्वज नहीं है; इसका उपयोग यह ट्रैक रखने के लिए लिनक्स पर किया जाता है कि फ़ाइल को बड़ी फ़ाइल इंटरफेस के साथ खोला गया था या नहीं। – mark4o
आपने प्रश्न को C++ के रूप में पूछा है, क्या आप सी ++ स्ट्रीम के साथ सी फ़ाइल ऑपरेशंस का उपयोग/मिश्रण कर रहे हैं, या आप केवल सी एपीआई का उपयोग कर रहे हैं? साथ ही, क्या आपके पास व्यवहार को पुन: उत्पन्न करने के लिए कुछ परीक्षण कोड है? यह सर्वोपरि है कि आप लंबाई/ऑफसेट से निपटने वाले सही प्रकारों का उपयोग करते हैं। – nos