创建和访问环境变量
来源:互联网 发布:c语言双引号if 编辑:程序博客网 时间:2024/06/05 08:44
环境变量的构成
环境变量由一对字符串组成,格式为:变量=关联值。例如:
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.
}
- 创建和访问环境变量
- 创建和访问环境变量
- 批处理创建和修改环境变量
- mysql设置远程访问和jdk环境变量
- mac下环境变量的创建和配置
- 数组的创建和访问
- JVM创建和访问对象
- Linux下如何访问和修改u-boot环境变量?
- mac配置环境变量和2dx创建编译项目命令
- Maven环境变量配置和Web创建及遇到的问题
- C#访问系统环境变量
- 访问操作系统的环境变量
- 程序访问unix环境变量
- .NET 如何访问环境变量
- Android 环境变量访问类
- ini文件的创建和读写访问
- Java动态创建和访问数组
- 递归的创建和访问二叉树
- NSArry,NSSet,NSDictory
- linux下查看系统信息
- Android Native C 之 Helloworld的四种编译方式
- javascript 客户端画图
- Ubuntu下10个厉害的Indicator小程序
- 创建和访问环境变量
- fedora9 挂载NFS出错
- STL 算法
- WSDL文档结构的 描述
- Registration of the Integration Pack failed
- ElasticSearch的IK安装步骤
- VC++ combo box控件的使用
- WEB-el表达式
- top和sar的说明