Provided by: manpages-fr_1.67.0-1_all bug

NOM

       envz_add,  envz_entry,  envz_get, envz_merge, envz_remove, envz_strip -
       Support des chaînes d’environnement.

SYNOPSIS

       #include <envz.h>

       error_t
       envz_add(char **envz, size_t *envz_len,
                const char *nom, const char *valeur);

       char *
       envz_entry(const char *envz, size_t *envz_len, const char *nom);

       char *
       envz_get(const char *envz, size_t *envz_len, const char *nom);

       error_t
       envz_merge(char **envz, size_t *envz_len,
                const char *envz2, size_t envz2_len, int override);

       void
       envz_remove(char **envz, size_t *envz_len, const char *nom);

       void
       envz_strip(char **envz, size_t *envz_len);

DESCRIPTION

       Ces fonctions sont spécifiques à la GlibC.

       Un vecteur argz est un pointeur sur un buffer de  caractère  associé  à
       une  longueur,  voyez argz_add(3).  Un vecteur envz est un vecteur argz
       spécial,  plus  précisément  un  dont  les   chaînes   ont   la   forme
       "nom=valeur".  Tout  ce  qui suit le ’=’ est considéré comme la valeur.
       S’il n’y a pas de ’=’, la valeur correspondant est NULL  (tandis  qu’un
       ’=’ en dernière position indique une chaîne valeur vide "").

       Ces fonctions permettent la manipulation des vecteurs envz.

       envz_add()  ajoute la chaîne "nom=valeur" (si valeur n’est pas NULL) ou
       "nom" (si la valeur est NULL) au vecteur envz (*envz,*envz_len) et  met
       à jour *envz et *envz_len.  Si une entrée avec le même nom existe, elle
       est supprimée.

       envz_entry() recherche le nom dans le vecteur envz  (envz,envz_len)  et
       renvoie son entrée si elle est trouvée, ou NULL sinon.

       envz_get()  recherche  le  name dans le vecteur envz (envz,envz_len) et
       renvoie sa valeur si elle est trouvée, et NULL sinon.   (Notez  que  la
       valeur  peut  aussi être NULL, lorsqu’il y a un entrée pour nom sans le
       signe ’=’)

       envz_merge() ajoute  les  entrées  de  envz2  dans  *envz,  comme  avec
       envz_add().    Si  override  est  vrai,  alors  les  valeurs  de  envz2
       écraseront celles avec le même  nom  dans  *envz,  sinon  elles  seront
       ignorées.

       envz_remove()   supprime  l’entrée  correspondant  au  nom  du  vecteur
       (*envz,*envz_len) si elle s’y trouve.

       envz_strip supprime toutes les entrées avec une valeur NULL.

VALEUR RENVOYÉE

       Toutes les fonctions envz qui font une allocation mémoire ont  un  type
       de retour error_t, et renvoient 0 si elles réussissent et ENOMEM si une
       erreur d’allocation se produit.

EXEMPLE

       #include <stdio.h>
       #include <envz.h>
       int
       main(int argc, char *argv[], char *envp[]) {
            int i, e_len = 0;
            char *str;

            for (i=0; envp[i] != NULL; i++)
                 e_len += strlen(envp[i]) + 1;

            str = envz_entry(*envp, e_len, "HOME");
            printf("%s\n", str);
            str = envz_get(*envp, e_len, "HOME");
            printf("%s\n", str);
            return 0;
       }

NOTES

       Ces fonctions sont des extensions GNU à traiter avec précaution.

VOIR AUSSI

       argz(3)

TRADUCTION

       Christophe Blaess, 2003.