getenv、setenv函式(獲取和設定系統環境變數) 與 環境變數
阿新 • • 發佈:2019-02-19
1、getenv()
函式名: getenv 功 能: 從環境中取字串,獲取環境變數的值 用 法:char *getenv(char *envvar); 函式說明:getenv()用來取得引數envvar環境變數的內容。引數envvar為環境變數的名稱,如果該變數存在則會返回指向該內容的指標。環境變數的格式為envvar=value。getenv函式的返回值儲存在一個全域性二維數組裡,當你再次使用getenv函式時不用擔心會覆蓋上次的呼叫結果。 返回值: 執行成功則返回指向該內容的指標,找不到符合的環境變數名稱則返回NULL。如果變數存在但無關聯值,它將執行成功並返回一個空字串,即該字元的第一個位元組是null。 相關函式:2、putenv
首先要說明的是,通過此函式並不能新增或修改 shell 程序的環境變數,或者說通過setenv函式設定的環境變數只在本程序,而且是本次執行中有效。如果在某一次執行程式時執行了setenv函式,程序終止後再次執行該程式,上次的設定是無效的,上次設定的環境變數是不能讀到的。putenv(改變或增加環境變數)
相關函式 getenv,setenv,unsetenv
表頭檔案 #include<stdlib.h>
定義函式 int putenv(const char * string);
函式說明:putenv()用來改變或增加環境變數的內容。引數string的格式為name=value,如果該環境變數原先存在,則變數內容會依引數string改變,否則此引數內容會成為新的環境變數。
返回值:執行成功則返回0,有錯誤發生則返回-1。
錯誤程式碼:ENOMEM 記憶體不足,無法配置新的環境變數空間。
--------------------------------------------------------------------------------------------------------
export命令
功能: 設定或顯示環境變數
語法: export [-fnp] [變數名稱]=[變數值]
說明: 在shell中執行程式時,shell會提供一組環境變數。export可新增,修改或刪除環境變數,供後續執行的程式使用。export的效力僅及於該此登陸操作。
引數:
-f 此時變數名稱為函式名稱。
-n 刪除指定的變數。變數實際上並未刪除,只是不會輸出到後續指令的執行環境中。
-p 列出所有的環境變數。
舉例:
export PRJROOT=/home/eriol/newproject
export PREFIX=${PRJROOT}/tools
export PATH=${PATH}:${PREFIX}/bin
Linux系統環境變數中,路徑名用冒號分隔。
注意:export設定只對當前的bash登入session有效,它是存在記憶體裡面的。
如果想要環境變數永久生效可以修改下面兩個檔案中的任何一個:
1 /etc/profile
2 .bash_profile
其中,/etc/profile是全域性的環境變數,對所有使用者生效,而.bash_profile只對當前使用者啟作用。
設定完畢,登出並重新登入,設定就生效了。 注意:export設定只對當前的bash登入session有效。這是存在記憶體裡面的。