【发布时间】:2013-04-02 13:55:57
【问题描述】:
我正在尝试访问我的环境变量之一,即JAVA_HOME。
为此,我使用getenv() 函数,如下所示:
#include <iostream>
#include <string.h>
int main() {
const char* env = getenv("JAVA_HOME");
if(env != NULL)
std::cout << "Environnement : " << env << std::endl;
else
std::cout << "NULL" << std::endl;
return 0;
}
我尝试了std::getenv("PATH");,它返回的内容与我放置JAVA_HOME 变量的文件/etc/bash.bashrc 不同。
我希望 std::getenv("JAVA_HOME") 返回我放入 /etc/bash.bashrc 文件中的内容。现在它返回了不同的东西。
如何获得正确的环境变量?我做错了什么?
我在 Ubuntu 12.04 和 GCC 4.7.2 下使用 C++11 和 QtCreator
编辑:代码
Include[...] 是 include 的简写
添加了 NULL 处理
编辑:进展
- 我试过
extern char **environ,但它不包含我需要的一个变量...
编辑:部分解决方案
没有办法像我发现的那样轻松地做这些事情。 我已经在 IDE 中设置了个人环境变量来解决这个问题。
【问题讨论】:
-
#include [...]实际上是您代码的一部分吗? -
我很确定它应该被称为
.bashrc并在你的主目录中。 -
在我的主目录中看不到任何 *.bashrc 文件...全名应该是什么?
-
您是否验证了该变量实际上已设置?
-
是的,是的!我附和了它。它回答得很好。
标签: c++ linux ubuntu environment-variables