修改环境变量

Linux下有两个函数用来查询和设置环境变量

char *getenv(const char *name);

int putenv(const char *string);

getenv用于查询指定的环境变量的值,成功则返回该值,否则返回null。

putenv以一个键值对的格式设置给定的环境变量的值

 1 #include <stdlib.h>
 2 #include <stdio.h>
 3 #include <string.h>
 4 
 5 int main(int argc, char **argv)
 6 {
 7     char *var, *value;
 8     
 9     if(argc == 1 || argc > 3)
10     {
11         fprintf(stderr, "usage:environ var [value]\n");
12         exit(-1);
13     }
14 
15     var = argv[1];
16     value = getenv(var);
17     if(value)
18     {
19         printf("Variable %s has value %s\n", var, value);
20     }
21     else
22     {
23         printf("Variable %s has no value\n");
24     }
25     
26     if(argc == 3)
27     {
28         char *string;
29         value = argv[2];
30         string = malloc(strlen(var) + strlen(value) + 2);
31         if(!string)
32         {
33             fprintf(stderr, "out of memory\n");
34             exit(1);
35         }
36         strcpy(string, var);
37         strcat(string, "=");
38         strcat(string, value);
39         printf("calling putenv with: %s\n", string);
40         if(putenv(string) != 0)
41         {
42             fprintf(stderr, "putenv failed\n");
43             free(string);
44             exit(1);
45         }
46         
47         value = getenv(var);
48         if(value)
49         {
50             printf("New value of %s is %s\n", var, value);
51         }
52         else
53         {
54             printf("New value of %s is null??\n", var);
55         }
56         
57         return 0;
58     }
59 }

 

posted @ 2014-09-19 15:07  冷冰若水  阅读(203)  评论(0编辑  收藏  举报