系統(tǒng)提供了一個全局變量environ。
//打印所有環(huán)境變量
#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
...
*/
使用環(huán)境變量可以在不改變源程序的情況下棚亩,控制程序輸出蓖议,如調(diào)試信息,打印等級等等蔑舞。
通過getenv(const char *name)讀入環(huán)境變量值拒担。
在linux終端中:
設(shè)置環(huán)境變量:export 變量名=value
刪除環(huán)境變量: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 進(jìn)入此條件
{
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;
}