我正在尝试访问我的一个environement变量,即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");
,它返回了与我的/etc/bash.bashrc
变量不同的文件JAVA_HOME
。
我希望std::getenv("JAVA_HOME")
能够返回我在/etc/bash.bashrc
文件中的内容。现在它返回了不同的东西。
如何获得正确的environement变量?我做错了什么?
我在Ubuntu 12.04下使用GCC 4.7.2使用C ++ 11和QtCreator
编辑:代码
包括[...]是包含
添加了NULL处理
编辑:进展
extern char **environ
,但它不包含我需要的一个变量...... 编辑:部分解决方案
我发现没有办法轻易做到这些事情。 我在IDE中设置了个人环境变量来克服这个问题。
答案 0 :(得分:1)
您的代码很好,除了您应该显式处理来自getenv()
的NULL返回值。
问题几乎可以肯定是您运行代码的方式。如果你:
$JAVA_HOME
(通过bashrc
或其他任何方式); 我打赌它会正常工作。