C程序使用环境变量

2020-12-31  本文已影响0人  霜冷长河wzq

系统提供了一个全局变量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;
}

上一篇 下一篇

猜你喜欢

热点阅读