Provided by: manpages-fr-dev_3.32d0.2p4-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, ou une valeur non nulle si elle échoue.

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.32 du projet man-pages Linux.  Une  description
       du  projet  et  des  instructions  pour  signaler  des  anomalies  peuvent être trouvées à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

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

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <URL: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> ».