linux環境變數設定的三種方式

2021-10-05 21:24:22 字數 2087 閱讀 3976

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

定義函式 int putenv(const char * string);

函式說明:putenv()用來改變或增加環境變數的內容。引數string的格式為name=value,如果該環境變數原先存在,則變數內容會依引數string改變,否則此引數內容會成為新的環境變數。

返回值:執行成功則返回0,有錯誤發生則返回-1。

錯誤**:enomem 記憶體不足,無法配置新的環境變數空間。

#include

#include

intmain

(int argc,

char

**ar**,

char

**env)

將上述**編譯成a.out ,執行。putenv ,setenv ,都是只在這個elf裡有效。

例如:我執行a.out,然後我在命令列 echo $var, 或者printenv | grep var是得不到環境的. 即使我c中return 0前面加while(1){} ,卡住程式,也一樣得不到

export

功能: 設定或顯示環境變數

語法: export [-fnp] [變數名稱]=[變數值]

說明: 在shell中執行程式時,shell會提供一組環境變數。export可新增,修改或刪除環境變數,供後續執行的程式使用。export的效力僅及於該此登陸操作。

引數:-f 此時變數名稱為函式名稱。

-n 刪除指定的變數。變數實際上並未刪除,只是不會輸出到後續指令的執行環境中。

-p 列出所有的環境變數。

舉例:

export prjroot=/home/eriol/newproject

export prefix=

$/tools

export path=$:

$/bin

linux系統環境變數中,路徑名用冒號分隔。

注意:export設定只對當前的bash登入session有效,它是存在記憶體裡面的。

對於這個的解釋,我們可以在做實驗,例如我在c中呼叫system(export test=$test:/hello);執行a.out後, 命令列執行printenv | grep test ,是沒有結果的。 因為system相當於,fork然後執行了乙個shell,呼叫完system,也就執行完了shell,export也就沒了

1 /etc/profile

2 .bash_profile

其中,/etc/profile是全域性的環境變數,對所有使用者生效,而.bash_profile只對當前使用者啟作用。

Linux下環境變數設定的三種方法

linux下環境變數設定的三種方法 如想將乙個路徑加入到 path中,可以像下面這樣做 1 控制台中設定,不贊成這種方式,因為他只對當前的shell 起作用,換乙個shell設定就無效了 path path new path 關閉shell path會還原為原來的path 2 修改 etc prof...

linux修改環境變數的三種方式

1.path path etc apache bin 使用這種方法,只對當前會話有效,也就是說每當登出或登出系統以後,path 設定就會失效 2.vi etc profile 在適當位置新增 path path etc apache bin 注意 即等號兩邊不能有任何空格 這種方法最好,除非你手動強...

Linux配置環境變數的三種方法

linux下環境變數設定的三種方法 如想將乙個路徑加入到 path中,可以像下面這樣做 1 控制台中設定,不贊成這種方式,因為他只對當前的shell 起作用,換乙個shell設定就無效了 path path new path 關閉shell path會還原為原來的path 2 修改 etc prof...