如何将整数值导出到c中的环境变量

Alv*_*vin 2 c environment-variables

我尝试过以下程序将值导出到环境变量.我想将一个整数值导出到环境变量.程序下面的值是"a"而不是1.如何将整数值导出到该环境变量.

#include<stdio.h>

void chnge_env_var(int a)
{
    char *name1="ENV_VAR";
    char *val=NULL;
    int status;
    status = putenv("ENV_VAR=a");
    printf("status %d\n",status);
    val = getenv(name1);
    printf("val %s\n",val);
}

int main()
{
    int a=1;
    chnge_env_var(a);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

Tom*_*rdt 6

环境只能包含字符串值.要存储整数,您必须将其转换为字符串然后存储.读取它时,您可以将字符串转换回整数.

int a = 10;
char env_var[20]; // length of 'ENV_VAR=' plus 12
sprintf(env_var, "ENV_VAR=%d", a);
putenv(env_var);
Run Code Online (Sandbox Code Playgroud)

正如'Code Clown'指出的那样,snprintf如果您不能确定缓冲区的大小合适,可能会使用它:

snprintf(env_var, 20, "ENV_VAR=%d", a);
Run Code Online (Sandbox Code Playgroud)