linux编程:getenv,putenv,setenv
1、getenv
???
| 頭文件 | #include<stdlib.h> |
| 函數(shù)原型 | char * getenv(const char *name); |
| 函數(shù)說明 | getenv()用來取得參數(shù)name環(huán)境變量的內(nèi)容。參數(shù)name為環(huán)境變量的名稱,如果該變量存在則會返回指向該內(nèi)容的指針。環(huán)境變量的格式為name=value。 |
| 返回值 | 執(zhí)行成功則返回指向該內(nèi)容的指針,找不到符合的環(huán)境變量名稱則返回NULL。 |
舉例:
#include<stdlib.h>
int mian()
{
??? char *p;
??? if((p = getenv(“USER”)))
??????? printf(“USER=%s\n”,p);
??? return 0;
}
執(zhí)行結(jié)果:USER = root
2、putenv
???
| 頭文件 | #include4<stdlib.h> |
| 定義函數(shù) | int putenv(const char * string); |
| 函數(shù)說明 | putenv()用來改變或增加環(huán)境變量的內(nèi)容。參數(shù)string的格式為name=value,如果該環(huán)境變量原先存在,則變量內(nèi)容會依參數(shù)string改變,否則此參數(shù)內(nèi)容會成為新的環(huán)境變量。 |
| 返回值 | 執(zhí)行成功則返回0,有錯誤發(fā)生則返回-1。 |
舉例:
#include<stdlib.h>
int main()
{
char *p;
if((p = getenv(“USER”)))
printf(“USER =%s\n”,p);
putenv(“USER=test”);
printf(“USER+%s\n”,getenv(“USER”));
}
執(zhí)行:
USER=root
USER=test
3、setenv
| 頭文件 | #include<stdlib.h> |
| 定義函數(shù) | int setenv(const char *name,const char * value,int overwrite); |
| 函數(shù)說明 | setenv()用來改變或增加環(huán)境變量的內(nèi)容。參數(shù)name為環(huán)境變量名稱字符串。 |
| 參數(shù) | value則為變量內(nèi)容,參數(shù)overwrite用來決定是否要改變已存在的環(huán)境變量。如果overwrite不為0,而該環(huán)境變量原已有內(nèi)容會被改為參數(shù)value所指的變量內(nèi)容。如果overwrite為0,且該環(huán)境變量已有內(nèi)容,則參數(shù)value會被忽略。 |
| 返回值 | 執(zhí)行成功則返回0,有錯誤發(fā)生時返回-1。 |
舉例:
#include<stdlib.h>
int main()
{
char * p;
if((p=getenv(“USER”)))
printf(“USER =%sn”,p);
setenv(“USER”,"test",1);
printf(“USER=%sn”,getenv(“USEr”));
unsetenv(“USER”);
printf(“USER=%sn”,getenv(“USER”));
}
執(zhí)行:
USER = root
USER = test
USER = (null)
說明:1、unsetenv函數(shù)就是清除環(huán)境變量的值(value),這個很明顯
????????? 2、如果overwrite 的值是0,并且環(huán)境變量name中的value是空(NULL),也會將傳進的參數(shù)值value賦給環(huán)境變量name。這一特性經(jīng)常使用。
總結(jié)
以上是生活随笔為你收集整理的linux编程:getenv,putenv,setenv的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5G赋能中国智慧教育
- 下一篇: linux 其他常用命令