是否有任何API或方法可以阻止对动态分配的内存进行读访问(和写入)?

kin*_*er1 2 c c++ linux memory-management

是否有任何API或方法可以阻止对动态分配的内存进行读取访问?

char *ptr = malloc(4);`
strcpy(ptr, "Hello");`
Run Code Online (Sandbox Code Playgroud)

现在,我希望ptr没有读访问权限和写保护.怎么做到这一点?

我不希望使用,mprotect因为它会ptr指向映射内存,并且每次都可能无法放大动态内存.

Sim*_*ter 5

mprotect仍然是答案.您需要一个页面对齐的分配,没有可能需要写入的分配器控制信息 - 因此mmap通过匿名内存分配内存.