年轮

2008 8.28 Thu
     12
3456789
10111213141516
17181920212223
24252627282930
31      
«» 2008 - 8 «»

文章搜索

日志文章

2007年11月26日 23:16:15

如何取得unix中的环境变量

    环境变量经常在程序开发中用到,在C语言中,可以通过一下方式访问环境变量:

    1、int main(int argc, char* argv[], char* envp[])

    main()函数的前两个参数int   argc,   char   *argv[],想必大家都已经很熟悉其作用了,它的第三个参数char*   envp[]是用来是环境字符串数组,是传递系统环境变量用的,但执行时,系统会将它的系统变量传递过来,见下面这段代码:
#include <iostream.h>
using namespace std;
#include <stdio.h>
int   main   (   int   argc   ,   char   *argv[]   ,   char   *envp[]   )
{
          int     i;
          for(   i=0   ;   envp!=NULL   ;   i++   )
          {
                    printf(   "%s\n "   ,   envp   );
          }
          return   0;
}

再或者:

#include <iostream.h>
using namespace std;

int   main   (   int   argc   ,   char   *argv[]   ,   char   *envp[]   )
{
    int n=0;
    while(envp[n]!=NULL)
          cout<<envp[n++]<<endl;
}

编译运行,会打印出系统的环境变量,如同执行env命令。

    2、通过getenv 和 putenv 函数实现

    需要包含头文件: #include <stdib.h>
   
    取得某个环境变量name的值value:
    char* getenv(const char *name);
    这是一个返回指针的函数,失败时返回的是NULL。
    函数getenv()在使用的时候不带类型.需要一个指针来接受函数返回的指针。
    如 char* p = getenv("环境变量名字")

    设置环境变量的值:
    int putenv(const char* str) 参数为新的环境变量和值,形式即“xxx=xxxxxxxx”
    这是一个返回整数类型的函数,出错时一般返回一个小于零的整数,一般是-1.
    如   :   putenv("TZ=PRC")  

    任何方式对环境变量的修改都只能影响本进程。因为用户在程序中操作的环境变量其实是进程空间内部的一个拷贝而已。

   







Tags: 环境变量  

类别: 每日编程 |  评论(0) |  浏览(741) |  收藏
发表评论