簡介
首先要說明的是,通過此函式並不能添加或修改 shell 進程的環境變數,或者說通過setenv函式設定的環境變數只在本進程,而且是本次執行中有效。如果在某一次運行程式時執行了setenv函式,進程終止後再次運行該程式,上次的設定是無效的,上次設定的環境變數是不能讀到的。
參數說明
表頭檔案 #include
定義函式 int setenv(const char *name,const char * value,int overwrite);
函式說明 setenv()用來改變或增加環境變數的內容。參數name為環境變數名稱字元串。參數 value則為變數內容,參數overwrite用來決定是否要改變已存在的環境變數。如果沒有此環境變數則無論overwrite為何值均添加此環境變數。若環境變數存在,當overwrite不為0時,原內容會被改為參數value所指的變數內容;當overwrite為0時,則參數value會被忽略。返回值 執行成功則返回0,有錯誤發生時返回-1。
錯誤代碼ENOMEM記憶體不足,無法配置新的環境變數空間
範例
#include
main()
{char * p;
if((p=getenv(“USER”)))
printf(“USER =%s\n”,p);
setenv(“USER”,”test”,1);
printf(“USER=%s\n”,getenv(“USER”));
unsetenv(“USER”);
printf(“USER=%s\n”,getenv(“USER”));
}
執行 USER = rootUSER = testUSER = (null)
注釋:stdlib.h 在Linux和Windows里略有不同,比如setenv函式是用在Linux里的,而在Windows里則沒有setenv函式,可用putenv來代替。
____________________________________________________
Linux命令:setenv
功能說明:查詢或顯示環境變數。
語法:setenv [變數名稱][變數值]
補充說明:setenv為tsch中查詢或設定環境變數的指令。
英文版本,歡迎翻譯:
ABOUT SETENV
In C shell sets the value of an environment variable.
SYNTAX
setenv [var [word]]
var Variable of the set command. word Set instructions or information of the variable.
EXAMPLES
setenv PATH "/bin:/usr/bin:/usr/sbin" - Sets the environment path to search for files in the /bin, /usr/bin and /usr/sbin directory.
翻譯:
setenv說明:
用於在c shell中設定環境變數的值
用法:
setenv ENVVAR value
其中,ENVVAR為所要設定的環境變數的名,value為所要設定的環境變數的值
例如:
setenv PATH "/bin:/usr/bin:/usr/sbin:"設定環境path的搜尋路徑為/bin,/usr/bin以及/usr/sbin