getenv ne retourne pas la bonne valeur
Bonjour !!!
J'essaie d'accéder à ma variable d'environnement sous Linux et j'ai un peu de mal. J'ai le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11
| #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;
} |
Et ceci ne me retourne pas ce que je veux. Je m'attends à avoir la valeur que j'ai définie pour $JAVA_HOME dans le fichier /etc/bash.bashrc. Au lieu de ça, la variable me renvoie ce qui est définit pour l'IDE que j'utilise (QtCreator).
Comme vous vous en doutez peut-être, en dehors de l'IDE, si j'exécute le programme, c'est la bonne valeur qui s'affiche.
Mais comment avoir la bonne valeur dans l'IDE ?
La solution avec
Code:
extern char** environ;
ne marche pas mieux. Ni même les arguments d'environnement du main.
J'utilise Ubuntu 12.04, GCC 4.7.2 et QtCreator si cela peut-être utile.
Si vous avez une idée j'en serai bien content !!