每個(gè)程序中都維護(hù)一個(gè)指向環(huán)境變量的指針char **environ;
子進(jìn)程會(huì)從父進(jìn)程繼承環(huán)境變量。子進(jìn)程環(huán)境變量的修改不一定會(huì)影響父進(jìn)程
無(wú)關(guān)的多個(gè)進(jìn)程之間修改環(huán)境變量不會(huì)互相影響
打印環(huán)境變量
[c]
#include <stdio.h>
extern char **environ;
int main()
{
while(*environ)
{
printf("%s
",*environ++);
}
return 0;
}
[/c]
查詢環(huán)境變量
多數(shù)時(shí)候,只是查看一個(gè)環(huán)境變量的值??梢允褂?char * getenv(const char *name);函數(shù)
[c]
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *path=getenv("PATH");
printf("path=%s
",path);
return 0;
}
[/c]
這個(gè)和shell中用echo $PATH打印出來(lái)的效果是一樣的
設(shè)置環(huán)境變量
putenv
定義函數(shù) int putenv(const char * string);
表頭文件 #include
函數(shù)說(shuō)明 putenv()用來(lái)改變或增加環(huán)境變量的內(nèi)容。
參數(shù) string的格式為name=value,如果該環(huán)境變量原先存在,則變量?jī)?nèi)容會(huì)依參數(shù)string改變,否則此參數(shù)內(nèi)容會(huì)成為新的環(huán)境變量。
[c]
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *HELLO;
putenv("HELLO=hello");
HELLO=getenv("HELLO");
printf("HELLO=%s
",HELLO);
return 0;
}
[/c]
修改環(huán)境變量
*修改PATH環(huán)境變量加上HOME目錄,把修改后的環(huán)境變量打印出來(lái)。
[c]
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char *path=getenv("PATH");
char *home=getenv("HOME");
int n=strlen(path)+strlen(home);
char *str=malloc(n+2);
sprintf(str,"%s:%s",home,path);
printf("str=%s
",str);
setenv("PATH",str,1);
path=getenv("PATH");
printf("new path=%s
",path);
free(str);
return 0;
}
[/c]
setenv與putenv區(qū)別
函數(shù)定義:int putenv(const char * string);
putenv()用來(lái)改變或增加環(huán)境變量的內(nèi)容。
參數(shù)string的格式為name=value,如果該環(huán)境變量原先存在,則變量?jī)?nèi)容會(huì)依參數(shù)string改變,否則此參數(shù)內(nèi)容會(huì)成為新的環(huán)境變量。
返回值:執(zhí)行成功則返回0,有錯(cuò)誤發(fā)生則返回-1。
函數(shù)定義:int setenv(const char *name,const char * value,int overwrite);
setenv()用來(lái)改變或增加環(huán)境變量的內(nèi)容。參數(shù)name為環(huán)境變量名稱字符串。
參數(shù)value則為變量?jī)?nèi)容,參數(shù)overwrite用來(lái)決定是否要改變已存在的環(huán)境變量。如果overwrite不為0,而該環(huán)境變量原已有內(nèi)容,則原內(nèi)容會(huì)被改為參數(shù)value所指的變量?jī)?nèi)容。如果overwrite為0,且該環(huán)境變量已有內(nèi)容,則參數(shù)value會(huì)被忽略。
返回值:執(zhí)行成功則返回0,有錯(cuò)誤發(fā)生時(shí)返回-1。
分享標(biāo)題:UC編程:環(huán)境變量的查詢與修改-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://jinyejixie.com/article26/dhdpjg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、響應(yīng)式網(wǎng)站、企業(yè)網(wǎng)站制作、Google、網(wǎng)站導(dǎo)航、網(wǎng)站收錄
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)