进程内存印象
来源:互联网 发布:淘宝主播底薪一般多少 编辑:程序博客网 时间:2024/06/05 13:34
Linux下C程序生成主要由四个步骤组成:预编译、编译、汇编、链接。编译器gcc经过 预编译、编译、汇编3个步骤将源程序文件转换成目标文件。如果程序有多个目标文件或程序中使用了库函数,则编译器还需要将所有目标文件及所需的库文件链接起来,最后生成可执行程序。当程序执行时,操作系统将可执行程序复制到内存中,程序转为进程通常需要以下步骤:
- *内核将程序读入内存,为程序分配内存空间;
- *内核为该进程保存PID及相应的状态信息,把进程放到运行队列中等待执行。程序转化为进程后就可被操作系统的调度程序执行了。
进程的内存映像是指内核在内存中如何存放可执行程序文件。在将程序转化为进程的过程中,操作系统将可执行程序从硬盘复制⾄至内存中,其布局如下:
我们只需写个小程序打印一下各个地址就可以验证其正确性了:
#include <stdio.h>#include <stdlib.h>int g_val1 = 0;int g_val2;int main(int argc, char *argv[], char *env[]){printf("code addr: %p\n", main);printf("init var addr: %p\n", &g_val1);printf("uninit var addr: %p\n", &g_val2);char *heap = (char *)malloc(10);printf("heap addr: %p~%p\n", heap, heap + 9);char stack[10];printf("stack addr: %p~%p\n", stack, stack + 9);printf("cmd lind para addr: %p\n", argv);printf("env addr: %p\n", env);free(heap);return 0;}运行结果:地址依次增长
1 0
- 进程内存印象
- 记录进程印象名的地址
- 印象
- 印象
- 进程内存
- 普通变量、一维指针、二维指针的内存印象
- 内存_进程内存映射
- 内存与进程管理器
- 搜索内存枚举进程
- 获取进程内存信息
- 进程内存结构
- 内存清零KILL进程
- 进程通信--共享内存
- 查看进程占用内存
- 进程的内存布局
- 进程内存分布
- Anti 进程内存保护
- Linux 进程内存模型
- 记录:activeandroid数据库工具注解字段,在android6.0里Gson解析确出错了
- C++ STL初探及string、vector学习
- 1008 数组元素循环右移问题
- 【数论】POJ_2115_C Looooops
- Java基础之(三十七)Java多线程编程<三>
- 进程内存印象
- Windows下f&fm&p&eg&录&制&视&频&命&令
- 模式识别与机器学习(4)
- CAS 实现单点登录oos(1)
- 在Mac terminal上安装scrapy过程报错及解决方法
- 1009 说反话
- select、poll、epoll之间的区别总结
- Eclipse adb 一直连不上解决办法
- caffe 安装遇到的问题