是否可以在C程序中修改环境变量。像这样:
#include <stdlib.h>
int main( void )
{
system( "echo $VARIABLE" );
system( "VARIABLE=somethig");
system( "echo $VARIABLE" );
return 0;
}
答案 0 :(得分:8)
答案 1 :(得分:2)
setenv(const char *name, const char *value, int overwrite);
是您需要的功能。
e.g。 setenv("CONFIG_PATH", "/etc", 0);
来自man page:
<强>描述强>
setenv()
函数将变量name
添加到环境中 如果value
尚不存在,则值为name
。如果name
确实存在于环境中,然后将其值更改为value
如果覆盖非零;如果覆盖为零,那么value
name
的{{1}}未更改。此函数可以复制指向的字符串 至name
和value
(与putenv(3)
相比)。