linux man page for envz_add

Query: envz_add

OS: linux

Section: 3

Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar

ENVZ_ADD(3)						     Linux Programmer's Manual						       ENVZ_ADD(3)

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.
EXAMPLE
#include <stdio.h> #include <stdlib.h> #include <envz.h> 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 ", str); str = envz_get(*envp, e_len, "HOME"); printf("%s ", str); exit(EXIT_SUCCESS); }
SEE ALSO
argz_add(3)
COLOPHON
This page is part of release 3.27 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. 2007-05-18 ENVZ_ADD(3)
Related Man Pages
envz(3) - linux
envz_get(3) - linux
envz_add(3) - redhat
envz_merge(3) - redhat
envz_add(3) - debian
Similar Topics in the Unix Linux Community
Simple rules of the UNIX.COM forums:
User Guide: Posting in the Emergency Forum
Please Donate to the Red Cross for Earthquake and Tsunami Relief in Japan
Answers to Recently Asked Questions about UNIX.COM
UNIX.com End of Year (EOY) Report (2019)