Je dois écrire un test unitaire pour un code C++ qui vérifie la présence d'une variable d'environnement. J'utilise MSVS 2008 et gtest comme cadre. J'ajoute la variable d'environnement en utilisant putenv, je vérifie la variable d'environnement en utilisant getevn, mais je n'arrive pas à comprendre comment l'enlever afin qu'aucun autre test ne le voit. Je réalise que c'est probablement facile, mais je ne trouve pas la réponse sur internet. MerciSupprimer la variable d'environnement par programme
Répondre
L'appel putenv
en spécifiant à nouveau "SOME_VAR="
en tant que paramètre supprimera la variable d'environnement SOME_VAR
. Par la suite, Microsoft recommande d'utiliser _putenv
car putenv
est obsolète.
vous pouvez utiliser la fonction unsetenv
.
Si vc2008 ne dispose pas de cette fonction, vous pouvez accéder directement à l'environnement en utilisant getenv_s
et supprimer l'entrée manuellement, en simulant unsetenv
.
Est-ce réellement disponible sur Windows sans utiliser le sous-système POSIX? Google affiche des résultats incohérents ... –
Vous pouvez toujours exécuter un sous-processus pour effectuer uniquement le test putenv
/getenv
, puis à la fin il n'y a plus d'environnement parasite.
J'ai pensé à cela, mais je cherchais une solution plus propre. – Steve
Que diriez-vous de mettre l'env var à une chaîne vide?
De cmd.exe, cela fonctionne:
set SOMEVAR=something
echo %SOMEVAR%
set SOMEVAR=
echo %SOMEVAR%
Lorsque le dernier montre qu'il a été supprimé.
- 1. Supprimer le cache de sortie par programme
- 2. FLEX: Comment supprimer par programme Alert?
- 3. supprimer l'image de tableViewCell créé par programme
- 4. Supprimer une cellule de UITableView par programme
- 5. Comment supprimer OutputCache par programme pour ascx?
- 6. Comment supprimer un raccourci annoncé par programme?
- 7. WPF checkbox supprimer par programme l'événement
- 8. WPF Supprimer l'animation de la marge par programme
- 9. Impossible de supprimer par programme la copie de travail SVN
- 10. Supprimer la variable QueryString en C#
- 11. Saisie d'identité définie par programme dans une variable de table
- 12. Comment faire pour supprimer des lignes de table par programme?
- 13. Supprimer programme lui-même
- 14. Treeview - Comment "supprimer" les lignes de nœuds indésirables par programme
- 15. Comment supprimer par programme tous les fichiers d'un répertoire http
- 16. C# supprimer l'espace de la variable
- 17. Supprimer par programme les images et les vidéos de html
- 18. Comment supprimer un composant COM + d'une application COM + par programme
- 19. Mysql: supprimer par programme toutes les clés étrangères
- 20. Impossible de supprimer le fichier par programme dans asp.net
- 21. Multiplier variable par une autre variable?
- 22. Supprimer la ligne par DataAdapter
- 23. Comment faire pour ajouter/supprimer des programmes - "Support Information" pour un programme par programme
- 24. Supprimer une application du programme de lancement par programme dans Android
- 25. Supprimer par programme l'icône d'essai de notifcation pour un autre programme
- 26. Comment trouver javac.exe par programme?
- 27. Ajouter/supprimer des données à la source de données TableView par programme
- 28. Comment supprimer par programme tous les éléments de la corbeille de deuxième niveau dans SharePoint 2007?
- 29. Le programme d'installation ne peut pas supprimer la version précédente
- 30. Comment est-ce que je programme la docstring par programme?
Notez qu'au moins sur Solaris, il n'y a aucune mention de cette fonctionnalité dans la page de manuel. –
Il utilise MSVS 2008. Implique qu'il travaille sur Windows. Sous Linux, j'utiliserais setenv et unsetenv. Je ne sais pas si Solaris les a cependant. – 341008