Loading

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 (voir
   feature_test_macros(7)) :

       putenv() : _SVID_SOURCE || _XOPEN_SOURCE

       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.23  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

       Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
       Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
       Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement         gérées         par         Nicolas         François
       <nicolas.francois@centraliens.net>   et   l’équipe    francophone    de
       traduction de Debian.

       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> ».