Linux进程全解2——进程环境(环境变量、进程运行的虚拟地址空间)
生活随笔
收集整理的這篇文章主要介紹了
Linux进程全解2——进程环境(环境变量、进程运行的虚拟地址空间)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
以下內(nèi)容源于朱有鵬《物聯(lián)網(wǎng)大講堂》課程的學(xué)習(xí)整理,如有侵權(quán),請告知刪除。
1、環(huán)境變量
- 進(jìn)程運(yùn)行的環(huán)境中的變量。
(1)export命令查看環(huán)境變量;
(2)進(jìn)程環(huán)境表
- 每一個進(jìn)程中都有一份所有環(huán)境變量構(gòu)成的一個表格,即當(dāng)前進(jìn)程可以直接使用這些環(huán)境變量。
- 進(jìn)程環(huán)境表是一個字符串?dāng)?shù)組(char** ,或者char* str[ ]),如上圖所示。
- 可以用environ這個全局變量指向它。
(3)程序中通過environ全局變量,來使用環(huán)境變量;
#include <stdio.h>int main(void) {extern char **environ; // 聲明就能用,不用定義int i = 0;while (NULL != environ[i]){printf("%s\n", environ[i]);i++;}return 0; }(4)我們寫的程序中,可以無條件直接使用系統(tǒng)中的環(huán)境變量。
- 一旦程序中用到了環(huán)境變量,那么程序就和具體操作系統(tǒng)的環(huán)境有關(guān)了。
(5)獲取指定環(huán)境變量函數(shù)getenv,設(shè)置環(huán)境變量setenv。
- 只能設(shè)置、刪除當(dāng)前進(jìn)程的環(huán)境變量,而不是操作系統(tǒng)的環(huán)境變量。
2、進(jìn)程運(yùn)行的虛擬地址空間
(1)操作系統(tǒng)中的每個進(jìn)程,都在獨立的地址空間中運(yùn)行。
- 進(jìn)程之間是彼此獨立,都以為自己是唯一的。
(2)對于32位系統(tǒng),操作系統(tǒng)為每個進(jìn)程分配了4GB的邏輯地址空間。
- 邏輯內(nèi)存中,一般0~1G為OS,1~4G為應(yīng)用。
- 實際上每個進(jìn)程所占的物理內(nèi)存并不多,于是我們可以在物理內(nèi)存里分配一段內(nèi)存空間給它。
(3)虛擬地址到物理地址空間的映射;
(4)意義:進(jìn)程隔離,提供多進(jìn)程同時運(yùn)行。
總結(jié)
以上是生活随笔為你收集整理的Linux进程全解2——进程环境(环境变量、进程运行的虚拟地址空间)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 杰魔(Geomagic Design)逆
- 下一篇: 数据库开发综合案例——仓库管理系统设计