Provided by: manpages-fr-dev_4.14.0-4_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);

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

       void argz_extract(const 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(const 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()  is a function to step through the argz vector. If entry is  NULL,  the  first
       entry is returned. Otherwise, the entry following is returned. It returns NULL if there is
       no following entry.

       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

       All  argz  functions  that  do memory allocation have a return type of error_t (an integer
       type), and return 0 for success, and ENOMEM if an allocation error occurs.

ATTRIBUTS

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

       ┌──────────────────────────────────┬──────────────────────┬─────────┐
       │InterfaceAttributValeur  │
       ├──────────────────────────────────┼──────────────────────┼─────────┤
       │argz_add(), argz_add_sep(),       │ Sécurité des threads │ MT-Safe │
       │argz_append(), argz_count(),      │                      │         │
       │argz_create(), argz_create_sep(), │                      │         │
       │argz_delete(), argz_extract(),    │                      │         │
       │argz_insert(), argz_next(),       │                      │         │
       │argz_replace(), argz_stringify()  │                      │         │
       └──────────────────────────────────┴──────────────────────┴─────────┘

CONFORMITÉ

       These functions are a GNU extension.

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 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> et David Prévot <david@tilapin.org>

       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⟩.

                                         1 novembre 2020                              ARGZ_ADD(3)