Partager via


_putenv_s, , _wputenv_s_tputenv_s

Crée, modifie ou supprime des variables d'environnement. Ces fonctions sont des versions de , qui ont des améliorations de_putenv sécurité, comme décrit dans les fonctionnalités de sécurité dans le CRT. _wputenv

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.

Pour _tputenv_s, consultez mappages de fonctions de texte générique.

Syntaxe

errno_t _putenv_s(
   const char *varname,
   const char *value_string
);
errno_t _wputenv_s(
   const wchar_t *varname,
   const wchar_t *value_string
);

Paramètres

varname
Nom de la variable d'environnement.

value_string
Valeur à attribuer à la variable d'environnement.

Valeur retournée

Retourne 0 en cas de réussite et un code d'erreur dans le cas contraire.

Conditions d’erreur

varname value_string Valeur retournée
NULL n'importe laquelle EINVAL
n'importe laquelle NULL EINVAL

Si l’une des conditions d’erreur se produit, ces fonctions appellent un gestionnaire de paramètres non valide, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, ces fonctions retournent EINVAL et définissent errno avec la valeur EINVAL.

Notes

La fonction _putenv_s 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_s est une version à caractères larges de _putenv_s; l'argument envstring de _wputenv_s 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 fonctions de texte générique

La fonction dans la tchar.h colonne est mappée à la fonction dans les autres colonnes en fonction du jeu de caractères défini au moment de la compilation.

Fonction tchar.h _UNICODE et _MBCS non définis _MBCS défini _UNICODE défini
_tputenv_s _putenv_s _putenv_s _wputenv_s

varname est le nom de la variable d'environnement à ajouter ou modifier et value_string est 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 une chaîne vide (autrement dit, "") pour value_string.

_putenv_s et _wputenv_s affectent uniquement l’environnement local du processus actuel ; vous ne pouvez pas les utiliser pour modifier l’environnement au niveau de la commande. Ces fonctions agissent uniquement sur les structures de données accessibles à la bibliothèque Runtime et non sur l'environnement « segment » que le système d'exploitation crée pour un processus. Quand le processus actif se termine, l'environnement repasse au niveau du processus appelant qui, dans la plupart des cas, est le niveau du système d'exploitation. Cependant, l'environnement modifié peut être passé aux nouveaux processus créés par _spawn, _exec ou system, et ces nouveaux processus obtiennent les nouveaux éléments ajoutés par _putenv_s et _wputenv_s.

Ne modifiez pas directement une entrée d’environnement ; à la place, utilisez _putenv_s ou _wputenv_s modifiez-le. En effet, le fait de libérer directement des éléments du tableau global _environ[] pourrait provoquer l'adressage d'une mémoire non valide.

getenv et _putenv_s utilisent la variable globale _environ pour accéder à la table d'environnement ; _wgetenv et _wputenv_s utilisent _wenviron. _putenv_s et _wputenv_s peuvent modifier la valeur de _environ et _wenviron, et ainsi invalider l'argument envp de main et l'argument _wenvp de 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 entre _putenv_s les variables globales et _wputenv_s les variables globales, consultez _environ, _wenviron.

Remarque

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

Spécifications

Routine En-tête requis
_putenv_s <stdlib.h>
_wputenv_s <stdlib.h> ou <wchar.h>

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

Exemple

Pour obtenir un exemple montrant comment utiliser _putenv_s, voir getenv_s, _wgetenv_s.

Voir aussi

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