putenv(3) Library Functions Manual putenv(3) NOM putenv - Ajouter ou modifier une variable d'environnement BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include int putenv(char *string); Exigences de macros de test de fonctionnalites pour la glibc (consulter feature_test_macros(7)) : putenv() : _XOPEN_SOURCE || /* glibc >= 2.19 : */ _DEFAULT_SOURCE || /* glibc <= 2.19 : */ _SVID_SOURCE DESCRIPTION La fonction putenv() ajoute ou modifie la valeur d'une variable d'environnement. L'argument string est une chaine de caracteres de la forme nom=valeur. Si nom n'existe pas dans l'environnement, string est ajoutee. Si nom existe, alors la valeur de de nom est remplacee par valeur. La chaine pointee par string devient partie integrante de l'environnement, ainsi une modification de cette chaine change l'environnement. VALEUR RENVOYEE La fonction putenv() renvoie 0 si elle reussit. En cas d'erreur, une valeur non nulle est renvoyee et errno contient le code d'erreur. ERREURS ENOMEM Pas assez de memoire. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------+--------------------------+---------------------+ |Interface | Attribut | Valeur | +---------------------+--------------------------+---------------------+ |putenv() | Securite des threads | MT-Unsafe const:env | +---------------------+--------------------------+---------------------+ STANDARDS POSIX.1-2008. HISTORIQUE POSIX.1-2001, SVr2, 4.3BSD-Reno. La fonction putenv() n'a pas besoin d'etre reentrante, celle de la glibc 2.0 ne l'est pas, contrairement a celle de la glibc 2.1. Depuis la version 2.1.2, la glibc se conforme aux specifications SUSv2 : le pointeur string transmis a putenv() est utilise. En particulier, cette chaine devient partie integrante de l'environnement ; si elle est modifiee par la suite, l'environnement sera modifie (c'est donc une erreur d'appeler putenv() avec une variable automatique en argument puis renvoyer a partir de la fonction appelante alors que la chaine est toujours dans l'environnement). Toutefois, de la glibc 2.0 a la glibc 2.1.1, c'est different : une copie de la chaine est utilisee. Cela cree d'une part une fuite memoire et d'autre part viole les specifications SUSv2. La version 4.3BSDReno, comme celle de la glibc 2.0, effectue aussi une copie ; cela est corrige dans tous les BSD recents. Dans les specifications SUSv2, le const a ete supprime du prototype. C'est aussi le cas dans glibc 2.1.3. L'implementation de la bibliotheque C GNU fournit une extension non standard. Si string ne comporte pas de signe egal : putenv("NAME"); alors la variable nommee est supprimee de l'environnement de l'appelant. VOIR AUSSI clearenv(3), getenv(3), setenv(3), unsetenv(3), environ(7) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Gregoire Scano Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.15 17 mai 2025 putenv(3)