Make Www.Edu-cn.Com Your Home Page!
用户名: 密码: 验证码: 注册
  当前位置: > 中国教程网>软件开发>vc> 创建和访问环境变量

创建和访问环境变量

作者:   来源:中国教程网   点击:   日期:2007-04-02

创建和访问环境变量 AOE3 STUDIO

赵湘宁

edu4u.com.cn

  中国教育网

环境变量的构成

    环境变量由一对字符串组成,格式为:变量=关联值。例如:
        PATH=C:\WINDOWS   AOE3 STUDIO 
    在和WINDOWS中,你可以从命令行或在批处理文件中定义环境变量,方法是使用SET命令,后面跟赋值表达式。下面是一个创建环境变量的例子,
        SET VERSION=1.1.3   www.edu-cn.com 
在Unix中可以省略前面的SET,写为:
        VERSION=1.1.3         

中国教程网

读取环境变量

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

ANSI C 的函数getenv()提供了轻松简便的访问环境变量的方法,这个函数在
<stdlib.h>中声明,原型如下:
        char * getenv(const char * name); 中国论文网 
如果函数调用成功,它返回环境变量的字符串值。如果变量没有被定义,函数返回空(NULL)。例如:
#include <stdlib.h>#include <stdio.h>int main(){ char * descr = getenv("PATH"); if (descr)  printf("value of PATH is: %s", descr); else   printf("variable not defined");} 
中国教程网
设置环境变量

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

中国论文网

    参数var必须是字符串,而且格式必须是“VAR=VAL”。putenv()将变量VAR添加到当前的环境变量中,并赋值VAL。如果变量已存在, putenv()覆盖现存的值。如果你不想覆盖现存变量的值,就先调用getenv()来检查变量是否存在,然后再调用putenv()。下面的例子是添加一个名为TEMP的环境变量,赋值为C:\TEMP(注意反斜杠在C/字符串中的表示方法)。如果调用成功,putenv()返回0,否则返回-1。
int stat = putenv("TEMP=C:\\TEMP");if (!stat){ printf("环境变量定义失败"); } www.edu4u.com.cn 
支持宽字符集变量

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

wchar_t * _wgetenv(const wchar_t * name);
int _wputenv(const wchar_t * var);

环境变量的使用

    环境变量的作用就是你不用改变源文件,不用重编译便可以控制程序的行为。例如,你可以通过定义环境变量控制程序是否显示debug信息。,如果你需要在客户处进行debug输出,环境变量就特别有用,以下就是一个这方面的例子,如果定义了环境变量DBG:
void func(); #include <stdlib.h>#include <stdio.h>int main(){ bool debug=false;  if (getenv("DBG"))  debug=true; if (debug)  printf("calling func"); func();  if (debug)  printf("returned from func");} 
www.edu-cn.com
 

www.edu-cn.com



文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   最新文章:
·static_cast揭密(04-02)
·泛型编程-转移构造函数(Generic Prog(04-02)
·使用MFC的数组类(04-02)
·浅析VC与MATLAB联合编程(04-02)
·精通VC与MATLAB联合编程——综合举例(04-02)
·精通VC与Matlab联合编程(五)(04-02)
·精通 VC 与 MATLAB 联合编程——综合(04-02)
·在VC资源文件中加入声音资源(04-02)
·const传奇(04-02)
·初始化类对象(04-02)
   相关文章:
·解析动态联编(下篇) - 作者:tingya ·在预先定义的内存位置构造一个对象
·解析动态联编(上篇) - 作者:tingya ·用 auto_ptr 类模板帮助动态内存管理
·C++编程杂谈之一:编译器 ·C++编程杂谈之二:面向对象
·C++编程杂谈之三:面向对象(续) ·初始化类对象
·单实例设计模式的实现 ·为什么operator=操作符返回引用

   文章评论:(0条)
  
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。

 §最新评论:

  责任编辑:中国教程网  

© 2007 Copyright 中国教育网
DesignBy:AOE3 STUDIO & ROCOCO