Linux练习(读取改变环境变量)

#include <stdlib.h>

#include <stdio.h>

#include <string.h>

int main(int argc,char **argv)

{

        char *var,*value;

        if(argc==1||argc>3)

        {

                exit(1);

        }



        var=argv[1];

        value=getenv(var);

        if(value)

                printf("Variable %s has value %s\n",var,value);

        else

                printf("Variable %s has no value\n",var);



        if(argc==3)

        {

                char *string;

                value=argv[2];

                string=malloc(strlen(var)+strlen(value)+2);

                if(!string)

                {

                        fprintf(stderr,"out of memoryy\n");

                        exit(1);

                }

                strcpy(string,var);

                strcat(string,"=");

                strcat(string,value);

                printf("Calling putenv with: %s\n",string);

                if(putenv(string)!=0)

                {

                        free(string);

                        exit(1);

                }

                value=getenv(var);

                if(value)

                        printf("New value of %s is %s\n",var,value);

                else

                        printf("New value of %s is null??\n",var);

        }

        exit(0);

}

函数原型:

#include <stdlib.h>

char *getenv(const char *name); 如果环境变量不存在,返回null.

int putenv(const char *string);如果添加环境变量失败返回-1

你可能感兴趣的:(linux)