您当前的位置:首页 > 计算机 > 编程开发 > C语言

怎样检索环境变量(environment variables)的值?

时间:12-30来源:作者:点击数:

ANSI C标准提供了一个名为getenv()的函数来完成这项任务。getenv()函数很简单一把指向要查找的环境串的指针传递给它,它就返回一个指向该变量值的指针。下面的程序说明了如何从C中获得环境变量PATH的值:

# include <stdlib.h>
main(int argc, char *  *  argv)
{
    char envValue[l29];             /*  buffer to store PATH */
    char *  envPtr = envValue ;     /*  pointer to this buffer  */
    envPtr = getenv("PATH");        /*  get the PATH */
    printf ("PATH= %s\n" , envPtr) ;   /* print the PATH */
}

如果你编译并运行了这个程序,你就会看到与在DOS提示符下输入PATH命令完全相同的结果。事实上,你可以用getenv()检索AUTOEXEC.BAT文件中的或者系统引导后在DOS揭示符下输入的所有环境变量的值。

这里有一个小技巧。当运行Windows时,Windows设置了一个名为WINDIR的新的环境变量,它包含了Windows目录的路径全名。下面这段简单的程序用来检索这个串:

# include <stdlib.h>
main(int argc, char * *  argv)
{
    char envValue[l29];
    char *  envPtr = envValue ;
   envPtr = getenv("windir");
    /* print the Windows directory */
    printf("The Windows Directory is  %s\n" ,  envPtr);
}

这个程序还可以用来判断当前是否正在运行Windows,以及DOS程序是否运行在一个DOS shell下,而不是运行在“真正的"DOS下。注意,程序中的windir字符串是小写——这一点很重要,因为它对大小写是敏感的。如果你使用WINDIR,getenv()就会返回一个NULL串(表示变量未找到错误)。

用一putenv()函数也可以设置环境变量。但要注意,该函数不是一个ANSI标准函数,在某些编译程序中它可能不以这个名字出现,或者根本就不存在。你可以用一putenv()函数做许多事情。实际上,在上面那个例子中,Windows正是用这个函数创建了windir环境变量。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门