有没有人成功用Linux内核2.6 mmap一个/ 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。