Provided by: manpages-fr-dev_4.13-4_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   (consulter
   feature_test_macros(7)) :

       putenv() : _XOPEN_SOURCE
           || /* Depuis la glibc 2.19 : */ _DEFAULT_SOURCE
           || /* Versions de la glibc <= 2.19 : */ _SVID_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, string est ajoutée. Si nom existe, alors la valeur  de  de  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.

ATTRIBUTS

       Pour une explication des termes utilisés dans cette section, consulter attributes(7).

       ┌──────────┬──────────────────────┬─────────────────────┐
       │InterfaceAttributValeur              │
       ├──────────┼──────────────────────┼─────────────────────┤
       │putenv()  │ Sécurité des threads │ MT-Unsafe const:env │
       └──────────┴──────────────────────┴─────────────────────┘

CONFORMITÉ

       POSIX.1-2001, POSIX.1-2008, SVr4, 4.3BSD.

NOTES

       La fonction putenv() n'a pas besoin d'être réentrante, celle de la glibc 2.0 ne l'est pas,
       contrairement à celle de la glibc 2.1.

       Depuis la version 2.1.2, la glibc se  conforme  aux  spécifications  SUSv2 :  le  pointeur
       string  transmis  à  putenv()  est  utilisé.  En  particulier, cette chaîne devient partie
       intégrante de l'environnement ; si elle est modifiée par la  suite,  l'environnement  sera
       modifié  (c'est  donc  une  erreur  d'appeler  putenv()  avec  une variable automatique en
       argument puis renvoyer à partir de la fonction appelante alors que la chaîne est  toujours
       dans  l'environnement).  Toutefois,  les  versions 2.0 à 2.1.1 de la glibc diffèrent : une
       copie de la chaîne est utilisée. Cela crée d'une part une fuite mémoire  et  d'autre  part
       viole les spécifications SUSv2.

       La version 4.4BSD, 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.

       L'implémentation de la bibliothèque C GNU fournit une extension non standard. Si string ne
       comporte pas de signe égal :

           putenv("NAME");

       alors la variable nommée est supprimée de l'environnement de l'appelant.

VOIR AUSSI

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

COLOPHON

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

TRADUCTION

       La  traduction  française  de  cette  page  de  manuel  a  été créée par Christophe Blaess
       <https://www.blaess.fr/christophe/>, Stéphan  Rafin  <stephan.rafin@laposte.net>,  Thierry
       Vignaud  <tvignaud@mandriva.com>,  François Micaux, Alain Portal <aportal@univ-montp2.fr>,
       Jean-Philippe   Guérard   <fevrier@tigreraye.org>,   Jean-Luc   Coulon   (f5ibh)    <jean-
       luc.coulon@wanadoo.fr>,    Julien    Cristau    <jcristau@debian.org>,    Thomas   Huriaux
       <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin
       Duneau  <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis
       Barbier  <barbier@debian.org>,  David  Prévot  <david@tilapin.org>   et   Grégoire   Scano
       <gregoire.scano@malloc.fr>

       Cette  traduction  est  une  documentation libre ; veuillez vous reporter à la GNU General
       Public  License  version 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩   concernant   les
       conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

       Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un
       message à debian-l10n-french@lists.debian.org ⟨⟩.