2

我试过下面的程序将值导出到环境变量。我想将一个整数值导出到环境变量。下面的程序将值作为“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;
}
4

1 回答 1

6

环境只能保存字符串值。要存储整数,您必须将其转换为字符串然后存储。阅读时,您可以将字符串转换回整数。

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

正如“代码小丑”指出的那样,snprintf如果您不确定缓冲区的大小是否正确,则可以使用它:

snprintf(env_var, 20, "ENV_VAR=%d", a);
于 2013-04-18T12:12:56.150 回答