Scroll to navigation

ARGZ_ADD(3) Manuel du programmeur Linux ARGZ_ADD(3)

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 (bufbuf_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 (argzargz_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 (argzargz_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).

Interface Attribut Valeur
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() Sécurité des threads MT-Safe

CONFORMITÉ

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)

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