创建和访问环境变量

环境变量的构成

环境变量由一对字符串组成,格式为:变量=关联值。例如:

1. PATH=C:\WINDOWS

在DOS和WINDOWS中,你可以从命令行或在批处理文件中定义环境变量,方法是使用SET命令,后面跟赋值表达式。下面是一个创建环境变量的例子,

1. SET VERSION=1.1.3

在Unix中可以省略前面的SET,写为:

1. VERSION=1.1.3

读取环境变量

程序只有在启动时才能访问到环境变量,环境变量由一个字符串数组构成,其形式为“VAR=value”。可以用getenv()和putenv()函数从程序中访问环境变量。

ANSI C 的函数getenv()提供了轻松简便的访问环境变量的方法,这个函数在< stdlib.h >中声明,原型如下:

1. char getenv(const char * name);

如果函数调用成功,它返回环境变量的字符串值。如果变量没有被定义,函数返回空(NULL)。例如:

01. #include < stdlib.h >
02. #include < stdio.h >
03. int main()
04. {
05. char * descr = getenv("PATH");
06. if (descr)
07. printf("value of PATH is: %s", descr);
08. else
09. printf("variable not defined");
10. }

设置环境变量

为了定义环境变量或者改变现存的变量值,使用putenv()函数。这个函数不是由标准的ANSI/ISO定义的。在实际应用中,Unix和Windows都将这个函数作为非标准扩展定义在< stdlib.h >文件中,它是可移植的。其原型如下:

1. int putenv(const char * var);

参数var必须是字符串,而且格式必须是“VAR=VAL”。putenv()将变量VAR添加到当前的环境变量中,并赋值VAL。如果变量已存在, putenv()覆盖现存的值。如果你不想覆盖现存变量的值,就先调用getenv()来检查变量是否存在,然后再调用putenv()。下面的例子是添加一个名为TEMP的环境变量,赋值为C:\TEMP(注意反斜杠在C/C++字符串中的表示方法)。如果调用成功,putenv()返回0,否则返回-1。

1. int stat = putenv("TEMP=C:\\TEMP");
2. if (!stat)
3. {
4. printf("环境变量定义失败");
5. }

支持宽字符集变量

Win32中也能定义getenv()和putenv()的宽字符集版本。注意_wputenv()使用于NT和Win2000:

wchar_t * _wgetenv(const wchar_t * name);

int _wputenv(const wchar_t * var);

环境变量的使用

环境变量的作用就是你不用改变源文件,不用重编译便可以控制程序的行为。例如,你可以通过定义环境变量控制程序是否显示debug信息。,如果你需要在客户处进行debug输出,环境变量就特别有用,以下就是一个这方面的例子,如果定义了环境变量DBG:

01. void func();
02.  
03. include < stdlib.h >
04. #include < stdio.h >
05. int main()
06. {
07. bool debug=false;
08. if (getenv("DBG"))
09. debug=true;
10. if (debug)
11. printf("calling func");
12. func();
13. if (debug)
14. printf("returned from func");
15. }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值