sourCEntral - mobile manpages

pdf

envz_add

NOMBRE

envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - soporte para las cadenas de entorno

BIBLIOTECA

Biblioteca Estándar C (libc, -lc)

SINOPSIS

#include <envz.h>

error_t envz_add(char **restrict envz, size_t *restrict envz_len,
const char *restrict
name, const char *restrict value);

char *envz_entry(const char *restrict envz, size_t envz_len,
const char *restrict
name);

char *envz_get(const char *restrict envz, size_t envz_len,
const char *restrict
name);

error_t envz_merge(char **restrict envz, size_t *restrict envz_len,
const char *restrict
envz2, size_t envz2_len,
int
override);

void envz_remove(char **restrict envz, size_t *restrict envz_len,
const char *restrict
name);

void envz_strip(char **restrict envz, size_t *restrict envz_len);

DESCRIPCIÓN

Estas funciones son específicas de glibc.

Un vector argz es un puntero a un buffer de caracteres junto con una longitud,véase argz_add(3). Un vector envz es un vector argz especial, donde las cadenas son de la forma "nombre=valor". Todo lo que sigue al primer '=' se considera el valor. Si no hay un carácter '=', el valor se considera NULL. (Mientras que el valor en el caso en que haya un '=' al final es la cadena vacía "".)

Estas funciones se usan para manejar vectores envz.

envz_add() añade la cadena "nombre=valor" (en el caso en que valor sea distinto de NULL) o "nombre" (en el caso en que valor sea NULL) al vector envz (*envz*envz_len) y actualiza *envz y *envz_len. Si ya existe una entrada con el mismo nombre, se elimina.

envz_entry() busca el nombre en el vector envz (envzenvz_len) y devuelve la entrada si se encuentra, o NULL en caso contrario.

envz_get() busca el nombre en el vector envz (envzenvz_len) 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 nombre sin el carácter '='.)

envz_merge() añada cada entrada en envz2 a *envz, de la misma manera que envz_add(). Si override es verdadero, los valores de envz2 reemplazarán aquellos con el mismo nombre en *envz.

envz_remove() elimina la entrada para nombre de (*envz*envz_len) si existe una.

envz_strip() elimina todas las entradas con valor NULL.

VALOR DEVUELTO

All envz functions that do memory allocation have a return type of error_t (an integer type), and return 0 for success, and ENOMEM if an allocation error occurs.

ATRIBUTOS

Para obtener una explicación de los términos usados en esta sección, véase attributes(7).

img

ESTÁNDARES

Estas funciones son extensiones de GNU.

EJEMPLOS

#include <envz.h>
#include <stdio.h>
#include <stdlib.h>

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\n", str);
str = envz_get(*envp, e_len, "HOME");
printf("%s\n", str);
exit(EXIT_SUCCESS);
}

VÉASE TAMBIÉN

argz_add(3)

TRADUCCIÓN

La traducción al español de esta página del manual fue creada por Miguel Pérez Ibars <mpi79470 AT alu DOT um DOT es>

Esta traducción es documentación libre; lea la GNU General Public License Version 3 o posterior con respecto a las condiciones de copyright. No existe NINGUNA RESPONSABILIDAD.

Si encuentra algún error en la traducción de esta página del manual, envíe un correo electrónico a debian-l10n-spanish.

pdf