2012-06-17 18 views
6

बस उत्सुक अगर मैं तो जैसे विंडोज प्लेटफॉर्म पर एक साझा स्मृति सरणी बना रहा हूं:क्या CreateFileMapping/MapViewOfFile शून्य द्वारा प्रारंभ की गई साझा मेमोरी सरणी प्रारंभ की गई है?

HANDLE hFile = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE | SEC_COMMIT, 0, 1024 * 4, _T("mySharedMemName")); 
if(hFile) 
{ 
    VOID* pData = MapViewOfFile(hFile, FILE_MAP_ALL_ACCESS, 0, 0, 1024 * 4); 

    //Is 'pData' array initialized with zeros the first time the 'hFile' is used? 
} 

स्मृति सरणी 0 के पहली बार मैं इस कोड स्निपेट फोन के साथ प्रारंभ है? और यदि नहीं, तो इसे शून्य कैसे शुरू किया जाए?

+1

अधिकांश ऑपरेटिंग सिस्टम शून्य के सभी पृष्ठों को भरते हैं जो किसी प्रक्रिया के पता स्थान में नए मैप किए जाते हैं (जब तक वे पृष्ठ डिस्क फ़ाइलों या परिधीय उपकरणों द्वारा साझा या समर्थित नहीं होते हैं)। ऐसा नहीं करना सुरक्षा बिंदु से मूर्खतापूर्ण होगा। –

उत्तर

7

documentation से:

एक फ़ाइल मानचित्रण वस्तु ऑपरेटिंग सिस्टम पेजिंग फ़ाइल द्वारा समर्थित में पृष्ठों की प्रारंभिक सामग्री हैं 0 (शून्य)।

+0

धन्यवाद। जाहिर है मैं इसे याद किया। यह अच्छा है कि हमें इसे साफ़ करने की आवश्यकता नहीं है। – ahmd0

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