Provided by: manpages-fr-dev_3.32d0.2p4-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 (« \0 »). 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 (« \0 ») 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_add(3)

COLOPHON

       Cette page fait partie de la publication 3.32 du projet man-pages Linux.  Une  description
       du  projet  et  des  instructions  pour  signaler  des  anomalies  peuvent être trouvées à
       l'adresse <URL:http://www.kernel.org/doc/man-pages/>.

TRADUCTION

       Depuis   2010,   cette   traduction   est   maintenue   à   l'aide   de    l'outil    po4a
       <URL:http://po4a.alioth.debian.org/>  par  l'équipe  de  traduction francophone au sein du
       projet perkamon <URL:http://perkamon.alioth.debian.org/>.

       Christophe  Blaess  <URL:http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <URL:http://manpagesfr.free.fr/>  (2003-2006). Florentin Duneau 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> ».

                                           18 mai 2007                                ARGZ_ADD(3)