创建和访问环境变量

2016-01-29 12:18 8 1 收藏

创建和访问环境变量,创建和访问环境变量

【 tulaoshi.com - C语言心得技巧 】

创建和访问环境变量

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com)

赵湘宁

 

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com) 环境变量的构成

    环境变量由一对字符串组成,格式为:变量=关联值。例如:
        PATH=C:WINDOWS  
    在DOS和WINDOWS中,你可以从命令行或在批处理文件中定义环境变量,方法是使用SET命令,后面跟赋值表达式。下面是一个创建环境变量的例子,
        SET VERSION=1.1.3  
在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.hint 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/C++字符串中的表示方法)。如果调用成功,putenv()返回0,否则返回-1。
int stat = putenv("TEMP=C:TEMP");if (!stat){ printf("环境变量定义失败"); }
支持宽字符集变量

    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.hint main(){ bool debug=false;  if (getenv("DBG"))  debug=true; if (debug)  printf("calling func"); func();  if (debug)  printf("returned from func");}

来源:https://www.tulaoshi.com/n/20160129/1485490.html

延伸阅读
所有使用mysqlclient客户库与服务器通信的MySQL客户使用下列环境变量: 使用MYSQL_PWD是不安全的。见6.3 与MySQL服务器连接。 “mysql”客户使用MYSQL_HISTFILE环境变量中命名的文件来保存命令行历史,历史文件的缺省值是“$HOME/.mysql_history”,这里$HOME是HOME环境变量的值。 所有MySQL程序取许多不同的选项,然...
#!/usr/bin/perl #安装说明: #复制程序代码,并存成env.cgi #以ascii模式上传至主机cgi-bin目录后将属性改成755 $|=1; print "Content-type: text/html\n\n"; print " 环境变量清单 \n"; print " \n"; print " \n"; print "\n"; print "\n"; print "变量名称\n"; print "目...
标签: windows 操作系统
近日发现朋友在玩电脑时,在“运行”中输入QQ.exe,QQ便运行了。这使我感到很诧异,以前我也曾试过在“运行”中输入QQ.exe过,却不能运行。这是为什么呢?最后在朋友的点拨下我终于得到了答案。下面与大家分享。 不知大家是否注意到这样一个地方:在“系统属性/高级/环境变量”下的系统变量。我们在“系统变量”下双击变量path。系统...
在使用任何 .NET SDK 命令行工具(包括 C# 编译器)之前,需要配置开发计算机以识别它们的存在。最简单的方法是使用 Start | All Programs | Visual Studio 2005 | Visual Studio Tools 菜单选项,启动预配置的 Visual Studio 命令...
Win7系统如何设置Java环境变量   1、右键点击桌面上的计算机图标,然后选择属性即可打开系统属性窗口; 2、点击左侧的高级系统设置选项,并点击下方的环境变量按钮; 3、在环境变量编辑界面中,在系统变量处 新建一个名为 JAVA_HOME的变量,并将值设置为C:Program  FilesJavajdk1.6.0_12 ; 4、系统变量-编辑-...

经验教程

686

收藏

68
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部