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.
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.44 du projet
man-pages Linux.
Une description du projet et des instructions pour signaler des anomalies
peuvent être trouvées à l'adresse
<
http://www.kernel.org/doc/man-pages/>.
TRADUCTION¶
Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
<
http://po4a.alioth.debian.org/> par l'équipe de traduction
francophone au sein du projet perkamon
<
http://perkamon.alioth.debian.org/>.
Christophe Blaess <
http://www.blaess.fr/christophe/> (1996-2003), Alain
Portal <
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> ».