Partager via


_putenv, _wputenv

Crée, modifie ou supprime des variables d'environnement. Des versions plus sécurisées de ces fonctions sont disponibles. Consultez _putenv_s, _wputenv_s.

Important

Cette API ne peut pas être utilisée dans les applications qui s’exécutent dans le Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.

Syntaxe

int _putenv(
   const char *envstring
);
int _wputenv(
   const wchar_t *envstring
);

Paramètres

envstring
Définition de chaîne d’environnement.

Valeur retournée

Les fonctions retournent 0 en cas de réussite, ou -1 en cas d’erreur.

Notes

La fonction _putenv ajoute de nouvelles variables d'environnement ou modifie les valeurs des variables d'environnement existantes. Les variables d'environnement définissent l'environnement d'exécution d'un processus (par exemple, le chemin de recherche par défaut pour les bibliothèques à lier à un programme). _wputenv est une version à caractères larges de _putenv; l'argument envstring de _wputenv est une chaîne à caractères larges.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de routines de texte générique

Routine Tchar.h _UNICODE and _MBCS non défini _MBCS défini _UNICODE défini
_tputenv _putenv _putenv _wputenv

L’argument envstring doit être un pointeur désignant une chaîne au format varname=value_string, varname représentant le nom de la variable d’environnement à ajouter ou modifier et value_string la valeur de la variable. Si varname fait déjà partie de l’environnement, sa valeur est remplacée par value_string ; sinon, la nouvelle variable varname et sa valeur value_string sont ajoutées à l’environnement. Vous pouvez supprimer une variable de l’environnement en spécifiant un élément vide value_string, ou en d’autres termes, en spécifiant uniquement varname=.

_putenv et _wputenv affectent uniquement l’environnement local du processus actuel ; vous ne pouvez pas les utiliser pour modifier l’environnement au niveau de la commande. Autrement dit, ces fonctions fonctionnent uniquement sur les structures de données accessibles à la bibliothèque d’exécution. Ils ne fonctionnent pas sur le segment d’environnement créé pour un processus par le système d’exploitation. Quand le processus actif se termine, l’environnement repasse au niveau du processus appelant (dans la plupart des cas, celui du système d’exploitation). Cependant, l’environnement modifié peut être transmis aux nouveaux processus créés par _spawn, _exec ou system, et ces nouveaux processus obtiennent les nouveaux éléments ajoutés par _putenv et _wputenv.

Ne modifiez pas directement une entrée d’environnement : à la place, utilisez _putenv ou _wputenv modifiez-la. En effet, la libération directe d’éléments du tableau global _environ[] pourrait entraîner l’adressage d’une mémoire non valide.

_getenv et _putenv utilisent la variable globale _environ pour accéder à la table d'environnement ; _wgetenv et _wputenv utilisent _wenviron. _putenv et _wputenv peut modifier la valeur et _environ _wenviron, par conséquent, invalider l’argument _envp et main l’argument _wenvp sur wmain. Par conséquent, il est plus sûr d’utiliser _environ ou _wenviron d’accéder aux informations d’environnement. Pour plus d’informations sur la relation et _putenv les variables globales, consultez_environ , _wenviron._wputenv

Remarque

Les familles de fonctions _putenv et _getenv ne sont pas thread-safe. _getenv peut retourner un pointeur de chaîne pendant que _putenv modifie la chaîne, ce qui provoque des échecs aléatoires. Assurez-vous que les appels à ces fonctions sont synchronisés.

Spécifications

Routine En-tête requis
_putenv <stdlib.h>
_wputenv <stdlib.h> ou <wchar.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

Pour obtenir un exemple d’utilisation _putenv, consultez getenv, _wgetenv.

Voir aussi

Processus et contrôle d’environnement
getenv, _wgetenv
_searchenv, _wsearchenv