मैं आवेदन (सी ++ में लिखा गया) पर काम कर रहा हूं, जो रनटाइम पर कुछ मशीन कोड उत्पन्न करता है (लिनक्स, x86-64 अब, लेकिन मैं एआरएम पर माइग्रेट करने की योजना बना रहा हूं)। इसके बाद यह स्मृति में जेनरेट कोड संग्रहीत करें और मेमोरी लोकेशन पर कूदकर इसे निष्पादित करें। एक लंबे समय के लिए मैं निष्पादन योग्य स्मृति आवंटन के साथ एक समस्या थी, लेकिन मैं अंत में का उपयोग कर इसे हल:रनटाइम पर निष्पादन योग्य कोड में कोड
uint8_t *memory = mmap (NULL, length, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
अब तक यह काम करता है, लेकिन मुझे यकीन है कि अगर यह इस तरह के काम करने के लिए सुरुचिपूर्ण तरीका है नहीं कर रहा हूँ। मुझे आश्चर्य है कि निष्पादन योग्य लोडर यह कैसे करता है?
यह वही तरीका है। –
संभावित डुप्लिकेट [लिनक्स पर सी में निष्पादन योग्य राम आवंटित करें] (http://stackoverflow.com/questions/3125756/allocate-executable-ram-in-c-on-linux) – ninjalj