.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2002 walter harms (walter.harms@informatik.uni-oldenburg.de) .\" .\" SPDX-License-Identifier: GPL-1.0-or-later .\" .\" 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 "20 juillet 2023" "Pages du manuel de Linux 6.05.01" .SH NOM envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip \- Gestion des chaînes d'environnement .SH BIBLIOTHÈQUE Bibliothèque C standard (\fIlibc\fP, \fI\-lc\fP) .SH SYNOPSIS .nf \fB#include \fP .PP \fBerror_t envz_add(char **restrict \fP\fIenvz\fP\fB, size_t *restrict \fP\fIenvz_len\fP\fB,\fP \fB const char *restrict \fP\fIname\fP\fB, const char *restrict \fP\fIvalue\fP\fB);\fP .PP \fBchar *envz_entry(const char *restrict \fP\fIenvz\fP\fB, size_t \fP\fIenvz_len\fP\fB,\fP \fB const char *restrict \fP\fIname\fP\fB);\fP .PP \fBchar *envz_get(const char *restrict \fP\fIenvz\fP\fB, size_t \fP\fIenvz_len\fP\fB,\fP \fB const char *restrict \fP\fIname\fP\fB);\fP .PP \fBerror_t envz_merge(char **restrict \fP\fIenvz\fP\fB, size_t *restrict \fP\fIenvz_len\fP\fB,\fP \fB const char *restrict \fP\fIenvz2\fP\fB, size_t \fP\fIenvz2_len\fP\fB,\fP \fB int \fP\fIoverride\fP\fB);\fP .PP \fBvoid envz_remove(char **restrict \fP\fIenvz\fP\fB, size_t *restrict \fP\fIenvz_len\fP\fB,\fP \fB const char *restrict \fP\fIname\fP\fB);\fP .PP \fBvoid envz_strip(char **restrict \fP\fIenvz\fP\fB, size_t *restrict \fP\fIenvz_len\fP\fB);\fP .fi .SH DESCRIPTION Ces fonctions sont spécifiques à la glibc. .PP 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 ""). .PP Ces fonctions permettent la manipulation des vecteurs envz. .PP \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. .PP \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. .PP \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 «\ =\ »). .PP \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. .PP \fBenvz_remove\fP() supprime l'entrée correspondant à \fIname\fP du vecteur (\fI*envz\fP,\ \fI*envz_len\fP) si elle s'y trouve. .PP \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 (un type d'entier), et renvoient \fB0\fP en cas de succès et \fBENOMEM\fP si une erreur d'allocation se produit. .SH ATTRIBUTS Pour une explication des termes utilisés dans cette section, consulter \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interface Attribut Valeur T{ .na .nh \fBenvz_add\fP(), \fBenvz_entry\fP(), \fBenvz_get\fP(), \fBenvz_merge\fP(), \fBenvz_remove\fP(), \fBenvz_strip\fP() T} Sécurité des threads MT\-Safe .TE .sp 1 .SH STANDARDS GNU. .SH EXEMPLES .\" SRC BEGIN (envz_add.c) .EX #include #include #include \& int main(int argc, char *argv[], char *envp[]) { char *str; size_t e_len = 0; \& for (size_t 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); } .EE .\" SRC END .SH "VOIR AUSSI" \fBargz_add\fP(3) .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier et David Prévot . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .