我正在使用運行時生成一些機器代碼的應用程序(用C++編寫)(現在Linux,x86-64,但我打算在ARM上遷移)。接下來它將生成的代碼存儲在內存中並通過跳轉到內存位置來執行它。在很長一段時間,我曾與分配可執行內存的問題,但我最後用解決它:在運行時將代碼注入可執行文件
uint8_t *memory = mmap (NULL, length, PROT_READ | PROT_WRITE | PROT_EXEC, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
到目前爲止,它的工作原理,但我不知道,如果是優雅的方式做這樣的事情。我不知道可執行文件加載程序如何執
就是這樣完成的。 – 2011-06-03 19:48:31
[在linux上分配可執行文件的內存](http://stackoverflow.com/questions/3125756/allocate-executable-ram-in-c-on-linux) – ninjalj 2011-06-03 20:51:41