c - mmap on/proc/pid/mem

标签 c linux mmap procfs systems-programming

有没有人成功地用 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/

相关文章:

c++ - C语言预处理器示例

linux - docker -libudev : udev_has_devtmpfs: name_to_handle_at on/dev: Operation not permitted

c++ - 通过 Mmap-ed 共享内存传递可变长度的 C 字符串

c - 两次调用 mmap 时出现 SIGSEGV

c - Libev - I/O 回调

c - 在 C 中哪里格式化/放置 "{"?

copy_to_user 一个包含数组(指针)的结构

android - 使用 Python-For-Android 将 Python 脚本导出到 Android 可执行文件 (.apk)

linux - 在 Xvfb 而不是正常 X 下生成的图像具有 fubar 调色板

linux - 使用 mmap 和大页面随机读取大文件