系统提供了一个全局变量environ。
//打印所有环境变量
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
int main()
{
int i = 0;
extern char **environ;
while(*(environ+i) != NULL)
{
std::cout<<*(environ+i)<<std::endl;
i++;
}
return 0;
}
/*打印:
HOME=/root
PYTHONPATH=/root
...
*/
使用环境变量可以在不改变源程序的情况下,控制程序输出,如调试信息,打印等级等等。
通过getenv(const char *name)读入环境变量值。
在linux终端中:
设置环境变量:export 变量名=value
删除环境变量:unset 变量名
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
int main()
{
std::cout<<"LOG_LEVEL :"<< getenv("LOG_LEVEL")<<std::endl;
char *logS = getenv("LOG_LEVEL");
if(getenv("LOG_LEVEL")) //如果export LOG_LEVEL=x 进入此条件
{
int logI = atoi(logS);
if(logI==1)
{
std::cout<<"level 1"<<std::endl;
}
else if(logI==2)
{
std::cout<<"level 2"<<std::endl;
}
else
{
std::cout<<"other level"<<std::endl;
}
}
return 0;
}
网友评论