Provided by: manpages-fr-dev_3.65d1p1-1_all bug

NOM

       putenv - Ajouter ou modifier une variable d'environnement

SYNOPSIS

       #include <stdlib.h>

       int putenv(char *string);

   Exigences de macros de test de fonctionnalités pour la glibc (consultez feature_test_macros(7)) :

       putenv() : _SVID_SOURCE || _XOPEN_SOURCE

DESCRIPTION

       La  fonction  putenv()  ajoute ou modifie la valeur d'une variable d'environnement. L'argument string est
       une chaîne de caractères de la forme nom=valeur. Si nom n'existe pas dans  l'environnement,  la  variable
       est  ajoutée. Si nom existe, alors la valeur de la variable d'environnement nom est remplacée par valeur.
       La chaîne pointée par string devient partie intégrante de  l'environnement,  ainsi  une  modification  de
       cette chaîne change l'environnement.

VALEUR RENVOYÉE

       La  fonction  putenv()  renvoie  0 si elle réussit. En cas d'erreur, une valeur non nulle est renvoyée et
       errno contient le code d'erreur.

ERREURS

       ENOMEM Pas assez de mémoire.

CONFORMITÉ

       SVr4, POSIX.1-2001, BSD 4.3.

NOTES

       La fonction putenv() n'a pas  besoin  d'être  réentrante,  celles  des  bibliothèques  libc4,  libc5,  et
       glibc 2.0 ne le sont pas, contrairement à celle de la glibc 2.1.

       Description  pour libc4, libc5 et glibc : Si la chaîne string est de la forme nom, sans contenir de signe
       « = », la variable du nom indiqué est supprimée de l'environnement. Si putenv() doit allouer  un  nouveau
       tableau  environ, et si le tableau précédent avait déjà été alloué par putenv(), alors il sera libéré. En
       aucun cas, l'espace correspondant aux chaînes d'environnement proprement dites ne sera libéré.

       Les versions des bibliothèques libc4, libc5 et glibc 2.1.2 se conforment aux  spécifications  SUSv2 :  le
       pointeur  string  transmis à putenv() est utilisé. En particulier, la chaîne devient partie intégrante de
       l'environnement ; si on la modifie par la suite, l'environnement  est  modifié  (c'est  donc  une  erreur
       d'appeler  putenv() avec une variable automatique en argument puis de revenir de la fonction alors que la
       chaîne est toujours dans l'environnement). Toutefois, les glibc 2.0 - 2.1.1 diffèrent : une copie  de  la
       chaîne  est  effectuée.  D'une part cela crée une fuite mémoire, d'autre part on viole les spécifications
       SUSv2. Ceci a donc été corrigé dans la glibc 2.1.2.

       La version BSD 4.4, comme celle de la glibc 2.0, effectue aussi une copie.

       Dans les spécifications SUSv2, le const a été supprimé du prototype. C'est aussi le cas dans glibc 2.1.3.

VOIR AUSSI

       clearenv(3), getenv(3), setenv(3), unsetenv(3), environ(7)

COLOPHON

       Cette page fait partie de la publication 3.65 du projet man-pages Linux. Une description du projet et des
       instructions    pour    signaler    des    anomalies    peuvent     être     trouvées     à     l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a <http://po4a.alioth.debian.org/> par
       l'équipe de traduction francophone au sein du projet perkamon <http://perkamon.alioth.debian.org/>.

       Christophe       Blaess       <http://www.blaess.fr/christophe/>      (1996-2003),      Alain      Portal
       <http://manpagesfr.free.fr/> (2003-2006). Nicolas François  et  l'équipe  francophone  de  traduction  de
       Debian (2006-2009).

       Veuillez  signaler  toute erreur de traduction en écrivant à <debian-l10n-french@lists.debian.org> ou par
       un rapport de bogue sur le paquet manpages-fr.

       Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande « man -L C
       <section> <page_de_man> ».

GNU                                               19 avril 2013                                        PUTENV(3)