小编Cab*_*age的帖子

为什么 malloc() 会导致轻微页面错误?

我正在尝试了解内存和页面错误,因此我编写了下面的代码来检查我的理解。我不明白为什么调用 malloc 会导致 MINFL 增加,因为 malloc() 不应该影响物理内存(据我所知)。

这是我的代码:

#include <stdio.h>
#include <stdlib.h>

void main() {
  printf("Before malloc\n");
  getchar();
  
  malloc(1 << 20);
  printf("After malloc\n");
  getchar();
}
Run Code Online (Sandbox Code Playgroud)

这些是 ps 命令的最终结果。

在进行 malloc 之前: 在malloc之前

malloc 之后: malloc之后

有两件事我不明白:

  1. 为什么 MINFL 会增加?
  2. 为什么VSZ增加1028而不是1024?

请帮忙并谢谢。

c malloc ps virtual-memory page-fault

5
推荐指数
1
解决办法
1467
查看次数

标签 统计

c ×1

malloc ×1

page-fault ×1

ps ×1

virtual-memory ×1