getenv、setenv函數(獲取和設置系統環境變量) 與 環境變量

1、getenv()

 

函數名: getenv

功 能: 從環境中取字符串,獲取環境變量的值

頭文件: stdlib.h

用 法:char *getenv(char *envvar);

函數說明:getenv()用來取得參數envvar環境變量的內容。參數envvar爲環境變量的名稱,如果該變量存在則會返回指向該內容的指針。環境變量的格式爲envvar=value。getenv函數的返回值存儲在一個全局二維數組裏,當你再次使用getenv函數時不用擔心會覆蓋上次的調用結果。

返回值: 執行成功則返回指向該內容的指針,找不到符合的環境變量名稱則返回NULL。如果變量存在但無關聯值,它將運行成功並返回一個空字符串,即該字符的第一個字節是null。

相關函數:_wgetenv、getenv_s、_wgetenv_s

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命令

功能: 設置或顯示環境變量

語法: 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有效。這是存在內存裏面的。

轉自:https://blog.csdn.net/qq_26093511/article/details/72742645?locationNum=2&fps=1

發佈了79 篇原創文章 · 獲贊 110 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章