有人成功地使用 Linux kernel 2.6 mmap /proc/pid/mem 文件吗?我遇到了一个 ENODEV(没有这样的设备)错误。我的调用看起来像这样:
char * map = mmap(NULL, PAGE_SIZE, PROT_READ, MAP_SHARED, mem_fd, offset);
我已经通过调试查看/proc/pid/maps文件确认,在执行此调用时,偏移量具有堆栈顶部减去PAGE_SIZE的值。我还使用了ptrace进行验证,发现mmap将errno设置为ENODEV。
linux-source
软件包,或者直接从kernel.org获取Linux内核源代码。 - ephemient