envz_merge man page on YellowDog

Man page or keyword search:  
man Server   18644 pages
apropos Keyword Search (all sections)
Output format
YellowDog logo
[printable version]

ENVZ_ADD(3)							   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.

EXAMPLE
       #include <stdio.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);
	    return 0;
       }

CONFORMING TO
       These functions are a GNU extension. Handle with care.

SEE ALSO
       argz(3)

								   ENVZ_ADD(3)
[top]

List of man pages available for YellowDog

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net