Comment obtenir les variables d'environnement système à l'aide de bibliothèque boost?
Je travaille sur windows et MacOS, j'aimerais obtenir des variables d'environnement.
Comment obtenir les variables d'environnement système à l'aide de bibliothèque boost?
Existe-il l'équivalent de System.Environment.GetEnvironmentVariable() de .Net ?
Il n'y a pas besoin de coup de pouce. Utilisation std::getenv de <cstdlib>, qui est un standard C++ la fonction.
Il semble qu'il y a pas de portable variables d'environnement système de suralimentation. Système de fichiers a un fichier portable de noms, mais les variables d'environnement ne sont pas portables: Win7 a HOMEPATH et *NIX dispose d'un FOYER, même nom d'utilisateur et l'UTILISATEUR. portable homedir constat est relativement inutile, puisque Windows et Unix sont très différentes conventions de l'endroit où spécifiques de l'utilisateur, les données doivent être stockées. Oui je suis d'accord, mais pour stocker le programme général des options est utile de disposer d'une convention: sur linux habituellement, les programmes de l'utilisateur de stocker $HOME/.myset ou windows probablement %userprofile%/.myset ou quelque chose de similaire. Donc mieux avoir portable fonctions. Le problème est que std::getenv n'est pas thread-safe, et il ne semble pas être un std::dupenv. c'est seulement un problème si vous appelez setenv partir d'un autre thread, non? Et d'avoir des fils de communiquer à travers le processus de l'environnement ne sonne pas comme une bonne idée pour moi...
Il n'y a pas besoin de coup de pouce. Utilisation
std::getenv
de<cstdlib>
, qui est un standard C++ la fonction.portable homedir constat est relativement inutile, puisque Windows et Unix sont très différentes conventions de l'endroit où spécifiques de l'utilisateur, les données doivent être stockées.
Oui je suis d'accord, mais pour stocker le programme général des options est utile de disposer d'une convention: sur linux habituellement, les programmes de l'utilisateur de stocker $HOME/.myset ou windows probablement %userprofile%/.myset ou quelque chose de similaire. Donc mieux avoir portable fonctions.
Le problème est que std::getenv n'est pas thread-safe, et il ne semble pas être un std::dupenv.
c'est seulement un problème si vous appelez
setenv
partir d'un autre thread, non? Et d'avoir des fils de communiquer à travers le processus de l'environnement ne sonne pas comme une bonne idée pour moi...OriginalL'auteur Fred Foo
Vous voudrez probablement une plaine
c
(et++
)getenv()
fonction, il n'a pas besoin d'être amplifié.OriginalL'auteur Michael Krelin - hacker