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