getenv获取不到环境变量,linux设置环境变量setenv
Getenv(获取环境变量内容)
相关函数putenv、setenv、unsetenv
头文件#include stdlib.h
定义函数char * getenv(const char * name);
解释函数getenv()是用来获取参数名环境变量的内容的。参数名是环境变量的名称,如果变量存在,它将返回指向内容的指针。环境变量的格式是name=value。
返回值:如果执行成功,则返回指向内容的指针,如果找不到匹配的环境变量名,则返回NULL。
模型
用户=root
Putenv(更改或添加环境变量)
相关函数getenv、setenv、unsetenv
头文件#include stdlib.h
定义函数int putenv(const char * string);
描述:putenv()用于改变或增加环境变量的内容。参数字符串的格式是name=value。如果环境变量原本就存在,那么变量内容会根据参数字符串发生变化,否则,参数内容会变成一个新的环境变量。
返回值:0表示成功执行,1表示出错。
错误:ENOMEM没有足够的内存来配置新的环境变量空间。
模型
执行用户=root
用户=测试
Setenv(更改或添加环境变量)
相关函数getenv、putenv、unsetenv
头文件#include stdlib.h
定义函数intsetenv (constchar * name,constchar * value,into overwrite);
解释setenv()函数用于更改或增加环境变量的内容。
参数名是一个环境变量名字符串。
该值是可变内容。
参数overwrite用于确定是否改变现有的环境变量。如果overwrite不为0,则更改环境变量原始内容,原始内容将更改为参数值所引用的变量内容。如果overwrite为0,并且环境变量已经有内容,则该参数值将被忽略。
如果返回值执行成功,则返回0,如果有错误,则返回-1。
错误ENOMEM没有足够的内存来配置新的环境变量空间。
模型
#包含stdlib.h
主()
{
char * p;
if((p=getenv("USER "))
printf("USER=%sn ",p);
setenv("用户","测试",1);
printf("USER=%sn ",getenv(" USER "));
unsetenv(“用户”);
printf("USER=%sn ",getenv(" USER "));
}
执行
用户=root
用户=测试
用户=(空)