Provided by: manpages-fr-dev_4.27.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 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(), argz_count(),             │ Sécurité des threads │ MT-Safe │
       │ argz_create(), argz_create_sep(), argz_delete(), argz_extract(),     │                      │         │
       │ argz_insert(), argz_next(), argz_replace(), argz_stringify()         │                      │         │
       └──────────────────────────────────────────────────────────────────────┴──────────────────────┴─────────┘

STANDARDS

       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>,    David    Prévot
       <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

       Cette traduction est une documentation libre ; veuillez vous  reporter  à  la  GNU General Public License
       version 3 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.

Pages du manuel de Linux 6.9.1                    15 juin 2024                                       argz_add(3)