有没有人成功地用 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。
最佳答案
参见 proc_mem_operations
in /usr/src/linux/fs/proc/base.c
: /proc/.../mem
不支持 mmap
。
关于c - mmap on/proc/pid/mem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5216326/