Recherche de site Web

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++

  1. 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.cpp

  2. Essayons maintenant d’exporter la nouvelle variable d’environnement shell MYENV :

    
    export MYENV=linuxconfig.org
    
  3. Compilez votre programme C++ avec g++ ou tout autre compilateur de votre choix :

    
    g++ shell_env.cpp -o shell_env
    
  4. Ensuite, 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.

Articles connexes: