Définir et obtenir la variable shell d’environnement en c++
Les variables d’environnement dans le shell Bash sont accessibles ou définies à l’aide d’un programme C++. Ceci est facilité par les fonctions getnenv() et putenv() définies dans la bibliothèque C/C++ stdlib.h. L’extension des variables environnementales est une excellente fonctionnalité d’un shell Linux car elle permet aux programmeurs et aux utilisateurs de s’appuyer sur les paramètres d’environnement de chaque utilisateur séparément. C++ getenv() lira toutes les variables d’environnement exportées et putenv() définira les variables existantes ou en créera de nouvelles.
Dans ce tutoriel, vous verrez un exemple de script C++ qui utilise les fonctions getnenv() et putenv() pour obtenir et définir les variables shell Bash, respectivement. Consultez le script ci-dessous pour voir comment procéder, puis copiez-le dans votre propre système et adaptez-le si nécessaire.
Dans ce tutoriel, vous allez apprendre :
- Comment définir des variables d’environnement Bash en C++ à l’aide
de putenv() - Comment obtenir des variables d’environnement Bash en C++ à l’aide de
getnenv() - Exemple de script C++ capable d’obtenir et de définir des variables Bash
Définir et obtenir la variable shell d’environnement en c++
Tout d’abord, copiez le code suivant dans un nouveau fichier. Cet exemple montre comment obtenir et imprimer deux variables d’environnement, et comment en définir une.
#include <stdlib.h> #include <iostream> int main() { // get and print shell environmental variable home std::cout << "SHELL = " << getenv("SHELL") << std::endl; std::cout << "MYENV = " << getenv("MYENV") << std::endl; //set new shell environmental variable using putenv char mypath[]="TEMP=/my/new/temp/path/"; putenv( mypath ); std::cout << "TEMP = " << getenv("TEMP") << std::endl; return 0; }Enregistrer en tant que
shell_env.cppEssayons maintenant d’exporter la nouvelle variable d’environnement
shell MYENV:export MYENV=linuxconfig.orgCompilez votre programme C++ avec g++ ou tout autre compilateur de votre choix :
g++ shell_env.cpp -o shell_envEnsuite, exécutons notre script compilé :
./shell_env
Votre sortie doit être :
SHELL = /bin/bash
MYENV = linuxconfig.org
TEMP = /my/new/temp/path/
Comme vous pouvez le voir, notre script a pu récupérer une variable d’environnement prédéfinie SHELL, ainsi qu’une variable d’environnement MYENV que nous avons définie manuellement nous-mêmes. Enfin, nous avons pu définir la variable d’environnement TEMP dans le programme C++ lui-même.
Réflexions finales
Dans ce tutoriel, nous avons vu comment définir et obtenir des variables d’environnement Bash à l’aide d’un programme C++ sur un système Linux. Comme on le voit ici, les fonctions getnenv() et putenv() nous permettent d’obtenir et de définir des variables d’environnement dans Bash, respectivement. S’appuyer sur des variables d’environnement est un moyen viable de rendre votre script C++ compatible avec de nombreux systèmes différents qui peuvent avoir des configurations différentes les unes des autres.
