Linux下的进程(三):进程环境 - HeavyYuan/A-CD-Record-Management-System GitHub Wiki
环境表
每个进程会接受到一张环境表。
外部变量extern char **environ
存储这些环境变量键值对(name=value)
尽量避免直接对该变量的读写,通常用getenv和putenv函数来访问特定的环境变量。
但如果要查看所有环境变量,就只能用environ
资源控制
函数getrlimit
和setrlimit
可以对进程的资源限制做查看和更改。
以上资源的限制是全局设置,也可以在shell下通过内置命令ulimit -a查看。
这些资源中,常见的是进程产生core的最大字节数。
进程的存储空间布局
高地址
+----------+
|Operating |
|System |
|----------|
| | - 命令行参数和环境变量
|----------|
|Stack VMA | - 栈内存,向低地址扩展
|----------|
| |
| |
|----------|
|Heap VMA | - 堆内存,向高地址扩展
|----------|
|Data VMA | - 包括初始化数据段(int a=99)和未初始化数据段,又称为bss段(long sum[100])
|----------|
|Code VMA | - 包含代码
|----------|
| |
+----------+
低地址