系统环境变量是为了一些特定程序准备的,便于系统读取并执行指定的命令。
比如,一个完整的WINDOWS应用程序需要在运行时了解清楚当前操作系统的一些基本情况:当前版本,临时目录,等等。比如版本问题,WINDOWS版本很多,有WIN3.1/WIN95/WIN98/WIN2000/WIN XP/VISTA/WIN 7等等,有一些程序需要应用某个操作系统版本的特殊功能,就不能在其他系统上使用,所以可以通过读取当前环境变量来进行判断。
用户变量和系统变量的区别在于权限和实例。权限可能比较好理解,实例就是这样的意思:假设你买了一辆宝马,你太太也想开这辆车,不过你们俩身材是有差别的,在座椅高度、反光镜位置都需要调整,那么不如准备两套用户变量,记录你们俩使用上的差异,然后开车的时候(用户登录)的时候,自动调出已经调整好的一堆变量,就可以使用了。系统变量则不同,任何时候都只有一套,不会随用户登录状况发生变化。
对于C语言来说,用户变量可以通过函数 getenv和setenv进行读取和设置,类型都是字符串。
对于用户来说,最常见的工作就是设定路径,比如:
c:\>echo %path%
c:\>set path = c:\windows;
诸如此类。
环境变量比注册表、INI文件更容易配置应用程序的优越性在于,环境变量时POSIX操作系统的一个标准功能,换句话说,你编的程序在任何一种操作系统上都可以使用环境变量,不必担心注册表只能在WINDOWS下使用的问题,这样程序的兼容性就好得多了。