Provided by: manpages-fr-dev_2.64.1-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 les 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 tampon de caractères  associé  à
       une  longueur. L’interprétation voulue pour le tampon 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 tampon 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ée
       pour les libérer.

       argz_add() ajoute la chaîne str à la fin du tableau *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)  après  (*argz,
       *argz_len)  et  met  à  jour  *argz  et  *argz_len (donc *argz_len sera
       augmenté de buf_len).

       argz_count() compte  le  nombre  de  chaînes,  c’est-à-dire  le  nombre
       d’octets nuls (« \0 ») dans le vecteur (argz, argz_len).

       argz_create()  convertit un vecteur de type 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 le tableau commençant à argv avec  des
       pointeurs sur les sous-chaînes et un NULL final en créant un vecteur de
       type Unix argv.  Le  tableau  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  octets  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.

CONFORMITÉ À

       Ces fonctions sont des extensions GNU. Utilisez-les avec précaution.

BOGUES

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

VOIR AUSSI

       envz(3)

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 Florentin Duneau <fduneau@gmail.com> 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> ».

                                  18 mai 2007                      ARGZ_ADD(3)