Linux 用户进程内存空间详解
发布时间:2016-10-28 06:49:38 所属栏目:Linux 来源:网络整理
导读:常使用top命令了解进程信息,其中包括内存方面的信息。命令top帮助文档是这么解释各个字段的。 VIRT, Virtual Image (kb) RES, Resident size (kb) SHR, Shared
|
PS:函数get_str_1()返回Stack段数据,编译时会报错。Heap中的数据,如果不用了,应该尽早释放free()。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
char data_var = '1';
char *mem_killer()
{
char *p;
p = (char *)malloc(1024*1024*4);
memset(p, ' ', 1024*1024*4);
p = &data_var; //危险,内存泄露
return p;
}
int main(int argc, char *argv[])
{
char *p;
for (;;)
{
p = mem_killer(); // 函数中malloc()分配的内存没办法free()
printf("%cn", *p);
sleep(20);
}
return 0;
}
PS:使用malloc(),特别要留意heap段中的内存不用时,尽早手工free()。通过top输出的VIRT和RES两值来观察进程占用VM和RAM大小。 本节结束之前,介绍工具size。因为Text, BSS, Data段在编译时已经决定了进程将占用多少VM。可以通过size,知道这些信息。 # gcc example_2_3.c -o example_2_3 # size example_2_3 text data bss dec hex filename 1403 272 8 1683 693 example_2_3
本文URL地址:http://www.bianceng.cn/OS/Linux/201410/45418.htm (编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读


