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)
环境只能包含字符串值.要存储整数,您必须将其转换为字符串然后存储.读取它时,您可以将字符串转换回整数.
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)
| 归档时间: |
|
| 查看次数: |
1734 次 |
| 最近记录: |