Provided by: manpages-fr-dev_4.18.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

BIBLIOTHÈQUE

       Bibliothèque C standard (libc, -lc)

SYNOPSIS

       #include <argz.h>

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

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

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

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

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

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

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

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

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

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

       error_t argz_replace(char **restrict argz, size_t *restrict argz_len,
                       const char *restrict str, const char *restrict with,
                       unsigned int *restrict 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
       (un type entier), et renvoient 0 si elles réussissent et ENOMEM si l'allocation échoue.

ATTRIBUTS

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

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

STANDARDS

       Ces fonctions sont une extension GNU.

BOGUES

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

VOIR AUSSI

       envz_add(3)

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