如何使用setenv设置环境变量

时间:2014-12-05 23:30:30

标签: c++ linux unix environment-variables

我正在尝试使用setenv函数设置env变量。但不幸的是,它并没有像预期的那样发挥作用。

int setNewEnvVariable(const std::string *varName, const std::string *value)
{
    setenv(varName->c_str(), value->c_str(), true);
    return this->VAR_ADDED;
} 

它似乎只在它想要的时候起作用。有时我可以更改(替换)变量,但它不会做任何更改。我根本无法添加新变量。我试过用putenv。但它没有帮助

我发现它什么时候没有改变现有的变量。当我尝试添加新变量时不存在。在此之后它不会添加新变量,但此外它并没有改变现有变量,但在尝试添加新变量之前,一切都有效。

我的意思是在尝试添加新的var之前它接受改变现有的例如PATH,但在传递不存在的变量如PATH2323之后,它停止接受改变现有的变量。

编辑

我已经检查了返回值它是0而errno也是0 ........它有什么问题?

0 个答案:

没有答案