mmap on /proc/pid/mem

问题描述 投票:0回答:1

有人成功地使用 Linux 内核 2.6 映射 /proc/pid/mem 文件吗?我收到 ENODEV(无此类设备)错误。我的电话是这样的:

char * map = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_SHARED, mem_fd, offset);

并且我在调试时通过查看 /proc/pid/maps 文件进行了验证,当执行到此调用时,offset 的值为堆栈顶部减去 PAGE_SIZE。我还用 ptrace 验证了 mmap 将 errno 设置为 ENODEV。

c linux mmap procfs systems-programming
1个回答
26
投票

proc_mem_operations

中的
/usr/src/linux/fs/proc/base.c
/proc/.../mem
不支持
mmap
.

可以通过

linux-source
包或直接从kernel.org

获取相应的linux内核源代码
© www.soinside.com 2019 - 2024. All rights reserved.