Name
envz_add, envz_entry, envz_get, envz_merge, envz_remove,
envz_strip — environment string support
Synopsis
#include <envz.h>
error_t envz_add( |
char ** |
envz, |
| |
size_t * |
envz_len, |
| |
const char * |
name, |
| |
const char * |
value); |
char
*envz_entry( |
const char * |
envz, |
| |
size_t * |
envz_len, |
| |
const char * |
name); |
char
*envz_get( |
const char * |
envz, |
| |
size_t * |
envz_len, |
| |
const char * |
name); |
error_t envz_merge( |
char ** |
envz, |
| |
size_t * |
envz_len, |
| |
const char * |
envz2, |
| |
size_t |
envz2_len, |
| |
int |
override); |
void
envz_remove( |
char ** |
envz, |
| |
size_t * |
envz_len, |
| |
const char * |
name); |
void
envz_strip( |
char ** |
envz, |
| |
size_t * |
envz_len); |
DESCRIPTION
These functions are glibc-specific.
An argz vector is a pointer to a character buffer together
with a length, see argz_add(3). An envz vector
is a special argz vector, namely one where the strings have
the form "name=value". Everything after the first '=' is
considered to be the value. If there is no '=', the value is
taken to be NULL. (While the value in case of a trailing '='
is the empty string "".)
These functions are for handling envz vectors.
envz_add() adds the string
"name=value" (in case value is non-NULL) or
"name" (in case
value is NULL) to the
envz vector (*envz,*envz_len) and updates
*envz and *envz_len. If an entry with the
same name existed, it
is removed.
envz_entry() looks for
name in the envz
vector (envz,envz_len) and returns the entry
if found, or NULL if not.
envz_get() looks for
name in the envz
vector (envz,envz_len) and returns the value
if found, or NULL if not. (Note that the value can also be
NULL, namely when there is an entry for name without '=' sign.)
envz_merge() adds each entry
in envz2 to
*envz, as if with
envz_add(). If override is true, then values
in envz2 will
supersede those with the same name in *envz, otherwise not.
envz_remove() removes the
entry for name from
(*envz,*envz_len) if there was one.
envz_strip() removes all
entries with value NULL.
RETURN VALUE
All envz functions that do memory allocation have a return
type of error_t,
and return 0 for success, and ENOMEM if an allocation error occurs.
CONFORMING TO
These functions are a GNU extension. Handle with care.
SEE ALSO
argz(3)
Copyright 2002 walter harms (walter.harms@informatik.uni-oldenburg.de)
Distributed under GPL
based on the description in glibc source and infopages
Corrections and additions, aeb
|