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

NOM

       argz_add,    argz_add_sep,    argz_append,   argz_count,   argz_create,
       argz_create_sep,  argz_delete,  argz_extract,  argz_insert,  argz_next,
       argz_replace,  argz_stringify  -  Fonctions  pour manipuler es vecteurs
       argz.

SYNOPSIS

       #include <argz.h>

       error_t
       argz_add(char **argz, size_t *argz_len, const char *str);

       error_t
       argz_add_sep(char **argz, size_t *argz_len,
                    const char *str, int delim);

       error_t
       argz_append(char **argz, size_t *argz_len,
                    const char *buf, size_t buf_len);

       size_t
       argz_count(const char *argz, size_t argz_len);

       error_t
       argz_create(char * const argv[], char **argz,
                    size_t *argz_len);

       error_t
       argz_create_sep(const char *str, int sep, char **argz,
                    size_t *argz_len);

       error_t
       argz_delete(char **argz, size_t *argz_len, char *entry);

       void
       argz_extract(char *argz, size_t argz_len, char  **argv);

       error_t
       argz_insert (char **argz, size_t *argz_len, char *before,
                    const char *entry);

       char *
       argz_next(char *argz, size_t argz_len, const char *entry);

       error_t
       argz_replace(char **argz, size_t *argz_len, const char *str,
                    const char *with, unsigned int *replace_count);

       void
       argz_stringify(char *argz, size_t len, int sep);

DESCRIPTION

       Ces fonctions sont spécifiques à la GlibC.

       Un vecteur argz est un pointeur sur un buffer de caractères  associé  à
       une longueur.  L’interprétation voulue pour le buffer de caractères est
       un tableau de chaînes, où les chaînes  sont  séparées  par  des  octets
       nuls.   Si  la  longueur est non nulle, le dernier octet du buffer doit
       être nul.

       Ces fonctions servent à manipuler les vecteurs argz. La paire (NULL, 0)
       est  un  vecteur  argz, et réciproquement les vecteurs argz de longueur
       zéro doivent avoir un pointeur NULL.  L’allocation de vecteurs argz non
       nuls  est  faite  avec  malloc(3), afin que free(3) puisse être utilisé
       pour les libérer.

       argz_add() ajoute la chaîne str à la fin de la table *argz,  et  met  à
       jour *argz et *argz_len.

       argz_add_sep()  est  similaire,  mais  découpe  la  chaîne str en sous-
       chaînes séparées  par  le  délimiteur  delim.   Par  exemple,  on  peut
       l’utiliser  sur  la  liste  de  recherche  des  chemins  Unix  avec  le
       délimiteur ’:’.

       argz_append()  ajoute  le  vecteur  argz  (buf,buf_len)  à  la  fin  de
       (*argz,*argz_len)  et  met à jour *argz et *argz_len.  (Donc, *argz_len
       sera augmentée de buf_len).

       argz_count() compte le nombre de chaînes,  c’est-à-dire  de  caractères
       nuls dans le vecteur (argz,argz_len).

       argz_create()  convertit un vecteur de type argv Unix argv, terminé par
       (char *) 0, en un vecteur argz (*argz,*argz_len).

       argz_create_sep() convertit la chaîne terminée par un caractère nul str
       en   un  vecteur  argz  (*argz,*argz_len)  en  la  découpant  à  chaque
       occurrence du séparateur sep.

       argz_delete() retire la sous-chaîne pointée par entry du  vecteur  argz
       (*argz,*argz_len) et met à jour *argz et *argz_len.

       argz_extract()  est  l’inverse de argz_create().  Elle prend le vecteur
       argz (argz,argz_len) et remplit la table commençant  à  argv  avec  des
       pointeurs  sur  les sous-chaines, et un NULL final en créant un vecteur
       de type argv Unix.  La table  argv  doit  avoir  assez  de  place  pour
       argz_count(argz,argz_len) + 1 pointeurs.

       argz_insert()  est  l’opposée de argz_delete().  Elle insère l’argument
       entry à la position before dans le vecteur  argz  (*argz,*argz_len)  et
       met  à  jour  *argz  et *argz_len.  Si before est NULL, alors entry est
       insérée à la fin.

       argz_next() est une fonction pour se déplacer dans le vecteur argz.  Si
       entry  est  NULL,  elle  renvoie  la  première  entrée. Sinon, l’entrée
       suivante est renvoyée. Elle  renvoie  NULL  s’il  n’y  a  pas  d’entrée
       suivante.

       argz_replace()   remplace  chaque  occurrence  de  str  avec  with,  en
       réallouant  argz  si  nécessaire.  Si   replace_count   est   non-NULL,
       *replace_count sera incrémenté du nombre de remplacements.

       argz_stringify()  est  l’opposée de argz_create_sep().  Elle transforme
       le vecteur argz en une chaîne normale en remplaçant tous les caractères
       nuls sauf le dernier par sep.

VALEUR RENVOYÉE

       Toutes  les fonctions argz qui font de l’allocation mémoire ont un type
       de retour error_t, et renvoient 0 si elles  réussissent  et  ENOMEM  si
       l’allocation échoue.

BOGUES

       Les  vecteurs  argz  sans  caractère  nul final conduisent une faute de
       segmentation.

NOTES

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

VOIR AUSSI

       envz(3)

TRADUCTION

       Christophe Blaess, 2003.