1. 程式人生 > >如何理解環境變數和getenv() linux

如何理解環境變數和getenv() linux

今天碰見一個環境變數相關的問題,怎麼搞都不對,後來發現自己對環境變數的學習不夠充分。

然後在學的時候找了很多,都說的太複雜了,看的我直迷糊。

看了很多理解後,寫一篇方便大家抓住重點,如有不正確的地方,歡迎指正。

以下系統為linux環境

首先,什麼是環境變數?

簡單說,環境變數就是一種變數的型別。比如,int是整形變數,char是字元型變數等等。可以理解為一個系統級的全域性變數。

環境變數裡面存的是什麼?

用什麼就存什麼!多數時候存的是一個檔案或資料夾的位置。比如說這種:

環境變數怎麼設定?

環境變數分為臨時的和永久的。

常用的臨時的,命令列輸入:export 變數名稱=變數的內容

設定環境變數 ABC 為 /


臨時的只對當前會話有效。這個shell終端關閉或者另外複製一個都是找不到這個變數的。


永久的,需要寫入系統變數永久生效的需要修改配置檔案,有需要的可自行百度。

環境變數如何檢視?

set 或者 env 或者export -p

set 顯示當前shell的變數,包括當前使用者的變數 

env 顯示當前使用者的變數 

export 顯示當前匯出成使用者變數的shell變數  

具體區別可以查閱別的資料

下面說getenv()

用環境變數基本就會用到getenv();

原型:char *getenv(char *envvar)

函式功能:從環境中取字串,獲取環境變數的

函式說明:getenv()用來取得引數envvar環境變數的內容。引數envvar為環境變數的名稱,如果該變數存在則會返回指向該內容的指標

。環境變數的格式為envvar=value。getenv函式的返回值儲存在一個全域性二維數組裡,當你再次使用getenv函式時不用擔心會覆蓋上次的呼叫結果。

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