页面映射只允许读取

时间:2014-04-03 14:34:26

标签: c++ c linux mmap

如果我将页面映射为只写:

int* mem_location = (int*)mmap(nullptr, getpagesize(), 
    PROT_WRITE, MAP_ANON | MAP_PRIVATE, -1, 0);

cout << "Read @" << mem_location << ". This should segfault: " 
     << *mem_location << endl;

cout << "doesn't though??" << endl;

为什么不读取段错误?

1 个答案:

答案 0 :(得分:1)

请参阅man page

  

在某些硬件架构(例如i386)上,PROT_WRITE意味着PROT_READ。

你不应该依赖这种行为。