envz_add(3) Library Functions Manual envz_add(3) envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - (libc -lc) #include 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); glibc. argz argz_add(3). envz argz "name=value". '=' . '=' NULL. ( '=' "".) envz. envz_add() "name=value" ( value NULL) "name" ( value NULL) envz (*envz, *envz_len) *envz *envz_len. name . envz_entry() name envz (envz, envz_len) NULL . envz_get() name envz (envz, envz_len) NULL . ( NULL name '='.) envz_merge() envz2 *envz envz_add(). override envz2 *envz . envz_remove() name (*envz, *envz_len) . envz_strip() NULL. envz error_t ( ) 0 ENOMEM . attributes(7). +------------+------------------------------------+--------------------+ || | | +------------+------------------------------------+--------------------+ |envz_add(), | | MT-Safe | |envz_entry(),| | | |envz_get(), | | | |envz_merge(),| | | |envz_remove(),| | | |envz_strip()| | | +------------+------------------------------------+--------------------+ GNU. #include #include #include 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); } argz_add(3) 3 . . : . 6.18 8 2026 envz_add(3)