Namespaces
Variants

std:: getenv

From cppreference.net
Utilities library
Défini dans l'en-tête <cstdlib>
char * getenv ( const char * env_var ) ;

Recherche dans la liste d'environnement fournie par l'environnement hôte (le système d'exploitation), une chaîne qui correspond à la chaîne C pointée par env_var et retourne un pointeur vers la chaîne C associée au membre correspondant de la liste d'environnement.

Cette fonction n'est pas requise d'être sûre en contexte multithread. Un autre appel à getenv , ainsi qu'un appel aux fonctions POSIX setenv() , unsetenv() , et putenv() peut invalider le pointeur retourné par un appel précédent ou modifier la chaîne obtenue d'un appel précédent.

(jusqu'à C++11)

Cette fonction est sûre en contexte multithread (l'appeler depuis plusieurs threads n'introduit pas de course aux données) tant qu'aucune autre fonction ne modifie l'environnement hôte. En particulier, les fonctions POSIX setenv() , unsetenv() , et putenv() introduiraient une course aux données si appelées sans synchronisation.

(depuis C++11)

Modifier la chaîne retournée par getenv provoque un comportement indéfini.

Table des matières

Paramètres

env_var - chaîne de caractères terminée par un caractère nul identifiant le nom de la variable d'environnement à rechercher

Valeur de retour

Chaîne de caractères identifiant la valeur de la variable d'environnement ou pointeur nul si une telle variable n'est pas trouvée.

Notes

Sur les systèmes POSIX, les variables d'environnement sont également accessibles via la variable globale environ , déclarée comme extern char ** environ ; dans <unistd.h> , et via le troisième argument optionnel, envp , de la fonction main .

Exemple

#include <cstdlib>
#include <iostream>
int main()
{
    if (const char* env_p = std::getenv("PATH"))
        std::cout << "Your PATH is: " << env_p << '\n';
}

Sortie possible :

Your PATH is: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

Voir aussi

Documentation C pour getenv