【发布时间】:2013-12-14 12:11:03
【问题描述】:
我无法理解这段代码:
static int read_mem(int pm, u64 *map)
{
u64 aux = PAGE_SIZE * sizeof(*map);
if (read(pm, map, aux) != aux) {
pr_perror("Can't read pagemap file");
return -1;
}
它实际上是从描述符 pm 中读取内存页,但我不明白为什么它使用 u64 作为缓冲区的地址。
如何获取已阅读的内容? 如何打印或处理?
【问题讨论】:
-
它没有使用
u64作为地址。它使用的是u64 *。 -
学习指针。地图指向您的内容。
-
你可以关注linux/include/linux/mm_types.h来发现内存页的内容。