如何理解環境變數和getenv() linux
阿新 • • 發佈:2019-01-06
今天碰見一個環境變數相關的問題,怎麼搞都不對,後來發現自己對環境變數的學習不夠充分。
然後在學的時候找了很多,都說的太複雜了,看的我直迷糊。
看了很多理解後,寫一篇方便大家抓住重點,如有不正確的地方,歡迎指正。
以下系統為linux環境
首先,什麼是環境變數?
簡單說,環境變數就是一種變數的型別。比如,int是整形變數,char是字元型變數等等。可以理解為一個系統級的全域性變數。
環境變數裡面存的是什麼?
用什麼就存什麼!多數時候存的是一個檔案或資料夾的位置。比如說這種:
環境變數怎麼設定?
環境變數分為臨時的和永久的。
常用的臨時的,命令列輸入:export 變數名稱=變數的內容
設定環境變數 ABC 為 /
臨時的只對當前會話有效。這個shell終端關閉或者另外複製一個都是找不到這個變數的。
永久的,需要寫入系統變數永久生效的需要修改配置檔案,有需要的可自行百度。
環境變數如何檢視?
set 或者 env 或者export -p
set 顯示當前shell的變數,包括當前使用者的變數
env 顯示當前使用者的變數
export 顯示當前匯出成使用者變數的shell變數
具體區別可以查閱別的資料
下面說getenv()
用環境變數基本就會用到getenv();
原型:char *getenv(char *envvar)
函式功能:從環境中取字串,獲取環境變數的值
函式說明:getenv()用來取得引數envvar環境變數的內容。引數envvar為環境變數的名稱,如果該變數存在則會返回指向該內容的指標
返回值: 執行成功則返回指向該內容的指標,找不到符合的環境變數名稱則返回NULL。如果變數存在但無關聯值,它將執行成功並返回一個空字串,即該字元的第一個位元組是null