वर्चुअल मेमोरी में हेरफेर करने के लिए मैं mmap()
का उपयोग करने का प्रयास करता हूं। मैं स्मृति के क्षेत्र को आरक्षित और प्रतिबद्ध करना चाहता हूं। मैंने इस कोड का परीक्षण किया:क्यों बड़े आकार के साथ mmap() कॉलिंग विफल नहीं है?
const unsigned long gygabyte = 1024 * 1024 * 1024;
const unsigned long gygabyteCount = 2;
const unsigned long maxCapacity = gygabyteCount * gygabyte;
int main()
{
char* pMemory;
pMemory = (char*)mmap(NULL, maxCapacity, PROT_NONE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
if (mprotect(pMemory, maxCapacity, PROT_READ | PROT_WRITE) != 0)
{
cout << "Memory Allocation has failed" << endl;
}
usleep(-1);
return 0;
}
मैंने टर्मिनल से अपने प्रोग्राम (6 कहें) की कई प्रतियां चलाईं। मैंने कभी भी "मेमोरी आवंटन विफल नहीं हुआ" देखा है। मैं 4 जीबी रैम के साथ 64-बिट उबंटू पर चल रहा हूं। क्या कोई मुझे इस बारे में कुछ बता सकता है?
मेमोरी ओवरकॉमिट – PlasmaHH
के बारे में पढ़ें आपके द्वारा पोस्ट किया गया कोड कुछ भी नहीं करता है। उन स्मृति क्षेत्रों के माध्यम से चलने का प्रयास करें। – Mat