अच्छा, EOF
सी stdio.h
हेडर फ़ाइल में परिभाषित फ़ंक्शन द्वारा केवल एक मान लौटाया गया है। यह वास्तव में ओएस द्वारा सभी पढ़ने के कार्यों में लौट आया, इसलिए इसकी प्रणाली निर्भर है। जब ओएस फ़ाइल के अंत तक पहुंच जाता है, तो यह इसे फ़ंक्शन पर भेजता है, जो कि आमतौर पर (-1
) स्थानों की तुलना में इसके वापसी मूल्य में होता है, लेकिन हमेशा नहीं। तो, संक्षेप में, EOF
चरित्र नहीं है, लेकिन ओएस द्वारा निरंतर लौटाया गया है। संपादित करें: ठीक है, आप फाइल सिस्टम के बारे में अधिक जानना चाहते हैं, पर this.
हाय देखने की जरूरत है, अपने दूसरे सवाल का:
एक बार फिर से, आप filesystems
में बेहतर दिखना चाहिए। एफएटी बहुत अच्छा उदाहरण है, क्योंकि आप इसके बारे में कई लेख पा सकते हैं, और इसके सिद्धांत एनटीएफएस के समान हैं। वैसे भी, एक बार फिर, ईओएफ NOT a character
है। आप इसे सीधे फाइल में नहीं रख सकते हैं। यदि आप ऐसा कर सकते हैं, तो परिणामों की कल्पना करें, यहां तक कि "गूंगा" छवि फ़ाइल सिस्टम द्वारा नहीं पढ़ी जा सकती है।
क्यों? Becouse ओएस परतों की बहुत जटिल संरचना की तरह काम करता है। परत में से एक फाइल सिस्टम ड्राइवर है। यह सुनिश्चित करता है कि यह ड्राइवर को ज्ञात प्रत्येक फाइल सिस्टम से डेटा स्थानांतरित करता है। यह एचडीडी में फ़ाइलों को संग्रहीत करने के अनुप्रयोगों और actuall प्रणाली के बीच पुल प्रदान करता है।
सटीक होने के लिए, एफएटी फाइल सिस्टम तथाकथित एफएटी तालिका का उपयोग करता है - यह एचडीडी (या विभाजन) एड्रेस स्पेस की शुरुआत के करीब स्थित एक टेबल है, और इसमें सभी क्लस्टर (छोटे भंडारण कक्ष) का नक्शा शामिल है। ठीक है, तो अब, जब आप कुछ फ़ाइल को एचडीडी में सहेजना चाहते हैं, तो ओएस (फाइल सिस्टम ड्राइवर) एफएटी टेबल में दिखता है, और "0x0" मान की खोज करता है। यह "0x0" मान ओएस को कहता है कि एफएटी तालिका में उस मान के स्थान से कौन सा पता लगाया गया है, क्लस्टर लिखने के लिए स्वतंत्र है।
तो यह फ़ाइल के पहले भाग में लिखता है। इससे भी, यह एफएटी में एक और "0x0" मान ढूंढता है, और यदि पाया जाता है, तो यह फ़ाइल के दूसरे हिस्से को क्लस्टर में लिखता है जो यह इंगित करता है। इससे पहले, यह पहले एफएटी तालिका रिकॉर्ड के मान को बदलता है जहां फ़ाइल हमारे मामले में फ़ाइल के दूसरे भाग में अगले के भौतिक पते पर स्थित है।
जब आपकी फ़ाइल सभी एचडीडी पर संग्रहीत होती है, तो अब अंतिम भाग आता है, यह वांछित ईओएफ मान लिखता है, लेकिन एफएटी तालिका में, एचडीडी के "डेटा भाग" में नहीं। तो जब अगली बार फ़ाइल पढ़ी जाती है, तो यह जानता है कि यह अंत है, आगे देखो नहीं।
तो, अब आप देखते हैं, अगर आप उस स्थान पर मैन्युअल रूप से ईओएफ मान लिखना चाहते हैं, तो आपको अपना खुद का ड्राइवर लिखना होगा जो एफएटी रिकॉर्ड को फिर से लिखने में सक्षम होगा, लेकिन यह व्यावहारिक रूप से है भिखारी के लिए असंभव करना।
मुझे बेवकूफ हो जाना चाहिए, क्योंकि मुझे नहीं पता कि इसका क्या अर्थ है। –
आपका मतलब है 'सीपी/एम' (नियंत्रण-जेड) में ईओएफ चरित्र की तरह ??? मुझे नहीं लगता कि पिछले 30 वर्षों में किसी भी ओएस ने फाइल मार्करों के अंत के रूप में ईओएफ पात्रों का उपयोग किया है? –
प्लस ईओएफ सूचक ओएस विशिष्ट है, उदाहरण के लिए यूनिक्स पर यह ctrl-D –