|
|||||||
|
|
ARGZ_ADDSection: Manuel du programmeur Linux (3)Updated: 21 juillet 2003 Index Return to Main Contents NOMargz_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 - functions to handle an argz listSYNOPSIS#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, DESCRIPTIONCes fonctions sont spécifiques à la GlibC.Un vecteur argz est un pointeur sur un buffer de caractères associé à une longueur. L'inteprétation voulue pour le buffer de cartactères est un tableau de chaînes, ou les chaînes sont séparées par des octets nuls. Si la longueur est non nulle, le dernier octet du buffer 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é pour les libérer. argz_add() ajoute la chaîne str à la fin de la table *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) à la fin de (*argz,*argz_len) et met à jour *argz et *argz_len. (Donc, *argz_len sera augmentée de buf_len). argz_count() compte le nombre de chaînes, c'est-à-dire de caractères nuls dans le vecteur (argz,argz_len). argz_create() convertit un vecteur de type argv 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 la table commençant à argv avec des pointeurs sur les sous-chaines, et un NULL final en créant un vecteur de type argv Unix. La table 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 caractères nuls sauf le dernier par sep. VALEUR RENVOYÉETout 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.BOGUESLes vecteurs argz sans caractère nul final conduisent une faute de segmentation.NOTESCes fonctions sont des extensions GNU, à utiliser avec précaution.VOIR AUSSIenvz(3)TRADUCTIONChristophe Blaess, 2003.
Index | ||||||
|
|
|
Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account Document on this page is part of "Linuxinfor Man Pages in HTML Format: man3". See Index Page for more info about Authorship and Copyright. 1999-2008 Linuxinfor.com. No rights reserved. |