_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