Linux进程全解2——进程环境(环境变量、进程运行的虚拟地址空间)
以下内容源于朱有鹏《物联网大讲堂》课程的学习整理,如有侵权,请告知删除。
- 进程运行的环境中的变量。
(1)export命令查看环境变量;
(2)进程环境表
- 每一个进程中都有一份所有环境变量构成的一个表格,即当前进程可以直接使用这些环境变量。
- 进程环境表是一个字符串数组(char** ,或者char* str[ ]),如上图所示。
- 可以用environ这个全局变量指向它。
(3)程序中通过environ全局变量,来使用环境变量;
#include <stdio.h>
int main(void)
{
extern char **environ; // 声明就能用,不用定义
int i = 0;
while (NULL != environ[i])
{
printf("%s
", environ[i]);
i++;
}
return 0;
}
(4)我们写的程序中,可以无条件直接使用系统中的环境变量。
- 一旦程序中用到了环境变量,那么程序就和具体操作系统的环境有关了。
(5)获取指定环境变量函数getenv,设置环境变量setenv。
- 只能设置、删除当前进程的环境变量,而不是操作系统的环境变量。
(1)操作系统中的每个进程,都在独立的地址空间中运行。
- 进程之间是彼此独立,都以为自己是唯一的。
(2)对于32位系统,操作系统为每个进程分配了4GB的逻辑地址空间。
- 逻辑内存中,一般0~1G为OS,1~4G为应用。
- 实际上每个进程所占的物理内存并不多,于是我们可以在物理内存里分配一段内存空间给它。
(3)虚拟地址到物理地址空间的映射;
(4)意义:进程隔离,提供多进程同时运行。
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇:没有了
- 下一篇:没有了
