.\" Copyright 2002 walter harms (walter.harms@informatik.uni-oldenburg.de) .\" .\" %%%LICENSE_START(GPL_NOVERSION_ONELINE) .\" Distributed under GPL .\" %%%LICENSE_END .\" .\" based on the description in glibc source and infopages .\" .\" Corrections and additions, aeb .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH ENVZ_ADD 3 "18 mai 2007" "" "Manuel du programmeur Linux" .SH NOM envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip \- Gestion des chaînes d'environnement .SH SYNOPSIS .nf \fB#include \fP \fBerror_t envz_add(char **\fP\fIenvz\fP\fB, size_t *\fP\fIenvz_len\fP\fB,\fP \fB const char *\fP\fIname\fP\fB, const char *\fP\fIvalue\fP\fB);\fP \fBchar *envz_entry(const char *\fP\fIenvz\fP\fB, size_t *\fP\fIenvz_len\fP\fB, const char *\fP\fIname\fP\fB);\fP \fBchar *envz_get(const char *\fP\fIenvz\fP\fB, size_t *\fP\fIenvz_len\fP\fB, const char *\fP\fIname\fP\fB);\fP \fBerror_t envz_merge(char **\fP\fIenvz\fP\fB, size_t *\fP\fIenvz_len\fP\fB,\fP \fB const char *\fP\fIenvz2\fP\fB, size_t \fP\fIenvz2_len\fP\fB, int \fP\fIoverride\fP\fB);\fP \fBvoid envz_remove(char **\fP\fIenvz\fP\fB, size_t *\fP\fIenvz_len\fP\fB, const char *\fP\fIname\fP\fB);\fP \fBvoid envz_strip(char **\fP\fIenvz\fP\fB, size_t *\fP\fIenvz_len\fP\fB);\fP .fi .SH DESCRIPTION Ces fonctions sont spécifiques à la glibc. .LP Un vecteur argz est un pointeur sur un tampon de caractère associé à une longueur, consultez \fBargz_add\fP(3). Un vecteur envz est un vecteur argz spécial, plus précisément un dont les chaînes ont la forme «\ nom=valeur\ ». Tout ce qui suit le «\ =\ » est considéré comme la valeur. S'il n'y a pas de «\ =\ », la valeur correspondante est NULL (tandis qu'un «\ =\ » en dernière position indique une chaîne vide ""). .LP Ces fonctions permettent la manipulation des vecteurs envz. .LP \fBenvz_add\fP() ajoute la chaîne «\ \fIname\fP=\fIvalue\fP\ » (si \fIvalue\fP n'est pas NULL) ou «\ \fIname\fP\ » (si \fIvalue\fP est NULL) au vecteur envz (\fI*envz\fP,\ \fI*envz_len\fP) et met à jour \fI*envz\fP et \fI*envz_len\fP. Si une entrée avec le même \fIname\fP existe, elle est supprimée. .LP \fBenvz_entry\fP() recherche \fIname\fP dans le vecteur envz (\fIenvz\fP,\ \fIenvz_len\fP) et renvoie son entrée si elle est trouvée, ou NULL sinon. .LP \fBenvz_get\fP() recherche le \fIname\fP dans le vecteur envz (\fIenvz\fP,\ \fIenvz_len\fP) et renvoie sa valeur si elle est trouvée, et NULL sinon. (Notez que la valeur peut aussi être NULL, lorsqu'il y a une entrée pour \fIname\fP sans le signe «\ =\ »). .LP \fBenvz_merge\fP() ajoute les entrées de \fIenvz2\fP dans \fI*envz\fP, comme avec \fBenvz_add\fP(). Si \fIoverride\fP est vrai, alors les valeurs de \fIenvz2\fP écraseront celles avec le même nom dans \fI*envz\fP, sinon elles seront ignorées. .LP \fBenvz_remove\fP() supprime l'entrée correspondant à \fIname\fP du vecteur (\fI*envz\fP,\ \fI*envz_len\fP) si elle s'y trouve. .LP \fBenvz_strip\fP supprime toutes les entrées avec une valeur NULL. .SH "VALEUR RENVOYÉE" Toutes les fonctions envz qui font une allocation mémoire ont un type de retour \fIerror_t\fP, et renvoient 0 en cas de succès et \fBENOMEM\fP si une erreur d'allocation se produit. .SH CONFORMITÉ Ces fonctions sont des extensions GNU. Utilisez\-les avec précaution. .SH EXEMPLE .nf #include #include #include int main(int argc, char *argv[], char *envp[]) { int i, e_len = 0; char *str; for (i = 0; envp[i] != NULL; i++) e_len += strlen(envp[i]) + 1; str = envz_entry(*envp, e_len, "HOME"); printf("%s\en", str); str = envz_get(*envp, e_len, "HOME"); printf("%s\en", str); exit(EXIT_SUCCESS); } .fi .SH "VOIR AUSSI" \fBargz_add\fP(3) .SH COLOPHON Cette page fait partie de la publication 3.65 du projet \fIman\-pages\fP 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/. .SH TRADUCTION Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a par l'équipe de traduction francophone au sein du projet perkamon . .PP Christophe Blaess (1996-2003), Alain Portal (2003-2006). Florentin Duneau et l'équipe francophone de traduction de Debian\ (2006-2009). .PP Veuillez signaler toute erreur de traduction en écrivant à ou par un rapport de bogue sur le paquet \fBmanpages\-fr\fR. .PP Vous pouvez toujours avoir accès à la version anglaise de ce document en utilisant la commande «\ \fBman\ \-L C\fR \fI
\fR\ \fI\fR\ ».