2015-06-08 9 views
5

जैसा कि शीर्षक कहता है; क्या मैं हमेशा शून्य से भरा फ़ाइल बनाने के लिए MemoryMappedFile पर भरोसा कर सकता हूं? मैंने कुछ नई बनाई गई फ़ाइलों को पढ़कर परीक्षण किया है लेकिन यह "परीक्षण" व्यर्थ लगता है, बिल्कुल मुझे अभी तक एक गैर-शून्य बाइट देखना है।क्या MemoryMappedFile.CreateNew (...) शून्य के साथ फ़ाइल बनाने की गारंटी है?

क्या इस पर कोई दस्तावेज है जिसे मैंने याद किया है, या यह केवल एक दिया गया है कि मेमोरी मैप की गई फाइलें सृजन पर खाली हैं।

उत्तर

1

नहीं, इसकी गारंटी नहीं है। यह कार्यान्वयन-विशिष्ट प्रतीत होता है।

MemoryMappedFile में उल्लेख नहीं किया गया है, लेकिन अंतर्निहित देशी एपीआई का व्यवहार जो .NET उचित (CreateFileMapping) में उपयोग करता है, स्पष्ट रूप से यह दस्तावेज करता है, और यह भंडारण के स्रोत के आधार पर भिन्न होता है।

एक फ़ाइल समर्थित मानचित्रण के मामले में: फ़ाइल बढ़ाया है

हैं, तो पुराने अंत फ़ाइल के और फ़ाइल के नए अंत के बीच फ़ाइल की सामग्री की गारंटी नहीं दी शून्य हो; व्यवहार फ़ाइल सिस्टम द्वारा परिभाषित किया गया है।

और एक गुमनाम मानचित्रण के मामले में (पेज फ़ाइल द्वारा समर्थित): एक फ़ाइल मानचित्रण वस्तु ऑपरेटिंग सिस्टम पेजिंग फ़ाइल द्वारा समर्थित में

पृष्ठों की प्रारंभिक सामग्री हैं 0 (शून्य)।

+0

क्या आपके पास कोई स्रोत लिंक है, मैं विनिर्देशों के करीब देखना चाहता हूं। – LaFleur

+1

माइक्रोसॉफ्ट फ़ाइल सिस्टम के बारे में कोई वादा नहीं कर सकता है, यह उनके नियंत्रण में नहीं है। हालांकि, सामान्य उपयोग में कोई भी ऐसा नहीं है जो शून्य उत्पन्न नहीं करता है। –

+0

@LaFleur http://msdn.microsoft.com/en-us/library/windows/desktop/aa366537.aspx –

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