Partager via


_putenv_s, _wputenv_s

Crée, modifier, ou supprime des variables d'environnement.Ce sont des versions de _putenv, _wputenv mais possèdent des améliorations de sécurité, comme décrit dans Fonctionnalités de sécurité du CRT.

Important

Cette API ne peut pas être utilisée dans les applications qui s'exécutent dans Windows Runtime.Pour plus d'informations, consultez Fonctions CRT non prises en charge avec /ZW.

errno_t _putenv_s(
   const char *name,
   const char *value 
);
errno_t _wputenv_s(
   const wchar_t *name,
   const wchar_t *value
);

Paramètres

  • name
    Le nom de la variable d'environnement.

  • value
    La valeur pour définir la variable d'environnement à.

Valeur de retour

Retourne 0 si l'opération a réussi, ou code d'erreur.

Conditions d'erreur

name

value

Valeur de retour

NULL

any

EINVAL

any

NULL

EINVAL

Si l'une des conditions d'erreur apparaît, ces fonctions appellent un gestionnaire de paramètre non valide, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution pour continuer, ces fonctions EINVAL de retour et affectez errno à EINVAL.

Notes

La fonction d' _putenv_s ajoute de nouvelles variables d'environnement ou modifie les valeurs des variables d'environnement existant.Les variables d'environnement définissent l'environnement dans lequel un processus s'exécute (par exemple, le chemin de recherche par défaut pour les bibliothèques sont attachées à un programme)._wputenv_s est une version à caractère élargi d' _putenv_s; l'argument d' envstring à _wputenv_s est une chaîne à caractères larges.

Mappages de routines de texte générique

Routine de TCHAR.H

_UNICODE et non définis _MBCS

_MBCS défini

_UNICODE défini

_tputenv_s

_putenv_s

_putenv_s

_wputenv_s

name est le nom de la variable d'environnement à ajouter ou modifié et value est la valeur de la variable.Si name est déjà partie de l'environnement, sa valeur est remplacée par value; sinon, la variable d' name et son value sont ajoutés à l'environnement.Vous pouvez supprimer une variable d'environnement en spécifiant une chaîne vide (autrement dit, "") pour value.

_putenv_s et _wputenv_s affectent uniquement l'environnement qui est local par rapport à le processus actuel ; vous ne pouvez pas les utiliser pour modifier l'environnement de commande- niveau.Ces fonctions fonctionnent uniquement sur les structures de données qui sont accessibles à la bibliothèque Runtime et pas sur l'environnement « segment » que le système d'exploitation crée pour un processus.Lorsque le processus actuel se termine, l'environnement retourne au niveau de le processus appelant, qui est dans la plupart des cas le niveau du système d'exploitation.Toutefois, l'environnement modifié peut être passé à tous les nouveaux processus qui sont 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 l'entrée d'un environnement directement ; à la place, utilisez _putenv_s ou _wputenv_s pour le modifier.En particulier, libérer directement des éléments du tableau globale d' _environ[] peut provoquer la mémoire non valide d'être traité.

getenv et _putenv_s utilisent la variable globale _environ pour accéder au tableau d'environnement ; _wgetenv et _wputenv_s utilisent _wenviron._putenv_s et _wputenv_s peuvent modifier la valeur d' _environ et d' _wenviron, et invalident ainsi l'argument d' envp à main et l'argument d' _wenvp à wmain.Par conséquent, il est plus sûr d'utiliser _environ ou _wenviron pour accéder aux informations d'environnement.Pour plus d'informations sur la relation d' _putenv_s et d' _wputenv_s aux variables globales, consultez _environ, _wenviron.

[!REMARQUE]

Les familles de _putenv_s et d' _getenv_s des fonctions ne sont pas thread-safe._getenv_s peut retourner un pointeur de chaîne alors qu' _putenv_s modifie la chaîne, et ainsi les échecs aléatoires de cause.Assurez-vous que les appels à ces fonctions sont synchronisés.

Configuration requise

Routine

En-tête requis

_putenv_s

<stdlib.h>

_wputenv_s

<stdlib.h> ou <wchar.h>

Pour des informations de compatibilité supplémentaires, consultez Compatibilité.

Exemple

Pour obtenir un exemple qui indique comment utiliser _putenv_s, consultez getenv_s, _wgetenv_s.

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de code non managé.

Voir aussi

Référence

Processus et contrôle ambiance

getenv, _wgetenv

_searchenv, _wsearchenv