argz_add(3) Library Functions Manual 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 BIBLIOTHEQUE Bibliotheque C standard (libc, -lc) SYNOPSIS #include 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 specifiques a la glibc. Un vecteur argz est un pointeur sur un tampon de caracteres associe a une longueur. L'interpretation voulue pour le tampon de caracteres est un tableau de chaines ou les chaines sont separees par des octets nuls (<< \0 >>). Si la longueur est non nulle, le dernier octet du tampon doit etre nul. Ces fonctions servent a manipuler les vecteurs argz. La paire (NULL, 0) est un vecteur argz et reciproquement les vecteurs argz de longueur zero doivent avoir un pointeur NULL. L'allocation de vecteurs argz non nuls est faite avec malloc(3) afin que free(3) puisse etre utilisee pour les liberer. argz_add() ajoute la chaine str a la fin du tableau *argz et met a jour *argz et *argz_len. argz_add_sep() est similaire, mais decoupe la chaine str en sous-chaines separees par le delimiteur delim. Par exemple, on peut l'utiliser sur la liste de recherche des chemins UNIX avec le delimiteur << : >>. argz_append() ajoute le vecteur argz (buf, buf_len) apres (*argz, *argz_len) et met a jour *argz et *argz_len (donc *argz_len sera augmente de buf_len). argz_count() compte le nombre de chaines, c'est-a-dire le nombre d'octets nuls (<< \0 >>) dans le vecteur (argz, argz_len). argz_create() convertit un vecteur de type UNIX argv termine par (char *) 0 en un vecteur argz (*argz, *argz_len). argz_create_sep() convertit la chaine terminee par un caractere nul str en un vecteur argz (*argz, *argz_len) en la decoupant a chaque occurrence du separateur sep. argz_delete() retire la sous-chaine pointee par entry du vecteur argz (*argz, *argz_len) et met a 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 commencant a argv avec des pointeurs sur les sous-chaines et un NULL final en creant 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'opposee de argz_delete(). Elle insere l'argument entry a la position before dans le vecteur argz (*argz, *argz_len) et met a jour *argz et *argz_len. Si before est NULL, alors entry est inseree a la fin. argz_next() est une fonction pour se deplacer dans le vecteur argz. Si entry est NULL, elle renvoie la premiere entree. Sinon, l'entree suivante est renvoyee. Elle renvoie NULL s'il n'y a pas d'entree suivante. argz_replace() remplace chaque occurrence de str avec with, en reallouant argz si necessaire. Si replace_count est non NULL, *replace_count sera incremente du nombre de remplacements. argz_stringify() est l'opposee de argz_create_sep(). Elle transforme le vecteur argz en une chaine normale en remplacant tous les octets nuls (<< \0 >>) sauf le dernier par sep. VALEUR RENVOYEE Toutes les fonctions argz qui font de l'allocation memoire ont un type de retour error_t (un type entier), et renvoient 0 si elles reussissent et ENOMEM si l'allocation echoue. ATTRIBUTS Pour une explication des termes utilises dans cette section, consulter attributes(7). +---------------------------------+--------------------------+---------+ |Interface | Attribut | Valeur | +---------------------------------+--------------------------+---------+ |argz_add(), argz_add_sep(), | Securite 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() | | | +---------------------------------+--------------------------+---------+ STANDARDS GNU. BOGUES Les vecteurs argz sans caractere nul final conduisent a une erreur de segmentation. VOIR AUSSI envz_add(3) TRADUCTION La traduction francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier et David Prevot Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 argz_add(3)