mprotect

Function mprotect 

Source
pub fn mprotect(addr: *mut c_void, len: usize, prot: i32) -> isize
Expand description

mprotect - 修改内存区域的保护权限

§参数

  • addr: 要修改权限的起始地址(必须页对齐)
  • len: 要修改权限的长度(字节)
  • prot: 新的保护标志(PROT_READ | PROT_WRITE | PROT_EXEC | PROT_NONE)

§返回值

  • 成功: 返回 0
  • 失败: 返回 -errno

§注意

  • 地址必须页对齐,否则返回 EINVAL
  • 范围必须完全在现有映射区域内,否则返回 ENOMEM
  • 只能修改通过 mmap 或 brk 创建的用户空间映射

§支持的特性

  • ✅ PROT_NONE - 不可访问
  • ✅ PROT_READ - 可读
  • ✅ PROT_WRITE - 可写(自动包含可读,RISC-V 特性)
  • ✅ PROT_EXEC - 可执行
  • ✅ 跨多个映射区域的权限修改