ENVZ_ADD
NAMESYNOPSIS
DESCRIPTION
RETURN VALUE
CONFORMING TO
EXAMPLE
SEE ALSO
COLOPHON
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\n", str);
str = envz_get(*envp, e_len, "HOME");
printf("%s\n", str);
exit(EXIT_SUCCESS);
}
SEE ALSO
COLOPHON
This page is part of release 3.69 of the Linux man-pages project. A description of the project, information about reporting bugs, and the latest version of this page, can be found at http://www.kernel.org/doc/man−pages/.
More Linux Commands
manpages/significand.3.html
significand(3) - get mantissa of floating-point number......
The significand() function returns the mantissa of x scaled to the range [1,2). It is equivalent to scalb(x, (double) -ilogb(x)) This function exists mainly for
manpages/tkmib.1.html
tkmib(1) - an interactive graphical MIB browser for SNMP....
Simple Network Management Protocol (SNMP) provides a framework for exchange of the management information between the agents (servers) and clients. The Manageme
manpages/Mail::SpamAssassin::Client.3pm.html
Mail::SpamAssassin::Client(3pm) - Client for spamd Protocol
Mail::SpamAssassin::Client is a module which provides a perl implementation of the spamd protocol. PUBLIC METHODS new public class (Mail::SpamAssassin::Client)
manpages/Tcl_AppendElement.3.html
Tcl_AppendElement(3) - manipulate Tcl result (Man Page).....
The procedures described here are utilities for manipulating the result value in a Tcl interpreter. The interpreter result may be either a Tcl object or a strin
manpages/ckalloc.3.html
ckalloc(3) - allocate or free heap memory - Linux man page
These procedures provide a platform and compiler independent interface for memory allocation. Programs that need to transfer ownership of memory blocks between
manpages/ldap_bind.3.html
ldap_bind(3) - LDAP bind routines - Linux manual page.......
These routines provide various interfaces to the LDAP bind operation. After an association with an LDAP server is made using ldap_init(3), an LDAP bind operatio
manpages/pthread_timedjoin_np.3.html
pthread_timedjoin_np(3) - try to join with a terminated thre
These functions operate in the same way as pthread_join(3), except for the differences described on this page. The pthread_tryjoin_np() function performs a nonb
manpages/field_pad.3form.html
field_pad(3form) - color and attribute control for form fiel
The function set_field_fore sets the foreground attribute of field. This is the highlight used to display the field contents. The function field_fore returns th
manpages/glScalef.3gl.html
glScalef(3gl) - multiply the current matrix by a general sca
glScale produces a nonuniform scaling along the x, y, and z axes. The three parameters indicate the desired scale factor along each of the three axes. The curre
manpages/utf-8.7.html
utf-8(7) - an ASCII compatible multibyte Unicode encoding...
The Unicode 3.0 character set occupies a 16-bit code space. The most obvious Unicode encoding (known as UCS-2) consists of a sequence of 16-bit words. Such stri
manpages/fchown32.2.html
fchown32(2) - change ownership of a file - Linux man page...
These system calls change the owner and group of a file. The chown(), fchown(), and lchown() system calls differ only in how the file is specified: * chown() ch
manpages/ntfslabel.8.html
ntfslabel(8) - display/change the label on an ntfs file syst
ntfslabel will display or change the file system label on the ntfs file system located on device. It can also change the serial number of the device. If the opt
