.\" -*- 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 ​​Julio 2023" "Páginas de manual de Linux 6.05.01" .SH NOMBRE envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip \- soporte para las cadenas de entorno .SH BIBLIOTECA Biblioteca Estándar C (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .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 DESCRIPCIÓN Estas funciones son específicas de glibc. .PP Un vector argz es un puntero a un buffer de caracteres junto con una longitud,véase \fBargz_add\fP(3). Un vector envz es un vector argz especial, donde las cadenas son de la forma "nombre=valor". Todo lo que sigue al primer \[aq]=\[aq] se considera el valor. Si no hay un carácter \[aq]=\[aq], el valor se considera NULL. (Mientras que el valor en el caso en que haya un \[aq]=\[aq] al final es la cadena vacía "".) .PP Estas funciones se usan para manejar vectores envz. .PP \fBenvz_add\fP() añade la cadena "\fInombre\fP=\fIvalor\fP" (en el caso en que \fIvalor\fP sea distinto de NULL) o "\fInombre\fP" (en el caso en que \fIvalor\fP sea NULL) al vector envz (\fI*envz\fP,\ \fI*envz_len\fP) y actualiza \fI*envz\fP y \fI*envz_len\fP. Si ya existe una entrada con el mismo \fInombre\fP, se elimina. .PP \fBenvz_entry\fP() busca el \fInombre\fP en el vector envz (\fIenvz\fP,\ \fIenvz_len\fP) y devuelve la entrada si se encuentra, o NULL en caso contrario. .PP \fBenvz_get\fP() busca el \fInombre\fP en el vector envz (\fIenvz\fP,\ \fIenvz_len\fP) y devuelve el valor si se encuentra, o NULL en caso contrario. (Observe que el valor también puede ser NULL, este caso se da cuando hay una entrada para \fInombre\fP sin el carácter \[aq]=\[aq].) .PP \fBenvz_merge\fP() añada cada entrada en \fIenvz2\fP a \fI*envz\fP, de la misma manera que \fBenvz_add\fP(). Si \fIoverride\fP es verdadero, los valores de \fIenvz2\fP reemplazarán aquellos con el mismo nombre en \fI*envz\fP. .PP \fBenvz_remove\fP() elimina la entrada para \fInombre\fP de (\fI*envz\fP,\ \fI*envz_len\fP) si existe una. .PP \fBenvz_strip\fP() elimina todas las entradas con valor NULL. .SH "VALOR DEVUELTO" All envz functions that do memory allocation have a return type of \fIerror_t\fP (an integer type), and return 0 for success, and \fBENOMEM\fP if an allocation error occurs. .SH ATRIBUTOS Para obtener una explicación de los términos usados en esta sección, véase \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfaz Atributo Valor T{ .na .nh \fBenvz_add\fP(), \fBenvz_entry\fP(), \fBenvz_get\fP(), \fBenvz_merge\fP(), \fBenvz_remove\fP(), \fBenvz_strip\fP() T} Seguridad del hilo Multi\-hilo seguro .TE .sp 1 .SH ESTÁNDARES GNU. .SH EJEMPLOS .\" 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 "VÉASE TAMBIÉN" \fBargz_add\fP(3) .PP .SH TRADUCCIÓN La traducción al español de esta página del manual fue creada por Miguel Pérez Ibars . .PP Esta traducción es documentación libre; lea la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3 .UE o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD. .PP Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a .MT debian-l10n-spanish@lists.debian.org .ME .