我试图访问我的environementvariables之一,这是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; }
我tryed std::getenv("PATH");
这会返回一些与我的文件/etc/bash.bashrc
不同的地方,在这里我放置了我的JAVA_HOME
variables。
我期望std::getenv("JAVA_HOME")
返回我放在我的/etc/bash.bashrc
文件。 现在它返回不同的东西。
我怎样才能得到一个正确的environementvariables? 我究竟做错了什么 ?
我在Ubuntu 12.04下使用C ++ 11与QtCreator进行GCC 4.7.2
编辑:代码
包括是包含的简写
增加了NULL处理
编辑:进展
extern char **environ
但它不包含我需要的一个variables… 编辑:部分解决scheme
我找不到这样的事情。 我已经在IDE中设置了个人环境variables来解决这个问题。
你的代码是好的,除了你应该显式地处理来自getenv()
的NULL返回值。
这个问题几乎可以肯定你的代码运行方式。 如果你:
$JAVA_HOME
在shell中正确设置(通过bashrc
或其他方式); 我敢打赌,它会正常工作。