envz_add(3) Library Functions Manual envz_add(3) NUME envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - suport pentru iruri de (variabile de) mediu BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #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); DESCRIERE Aceste funcii sunt specifice glibc. Un vector argz este un indicator catre o memorie tampon de caractere impreuna cu o lungime, a se vedea argz_add(3). Un vector envz este un vector argz special, i anume unul in care irurile de caractere au forma ,,nume=valoare". Tot ceea ce urmeaza dupa primul ,,=" este considerat a fi valoarea. Daca nu exista niciun ,,=", valoarea este considerata NULL; (in timp ce valoarea in cazul in care exista un ,,=" la sfarit este irul gol ""). Aceste funcii sunt destinate manipularii vectorilor envz. envz_add() adauga irul de caractere ,,nume=valoare" (in cazul in care valoare nu este NULL) sau ,,nume" (in cazul in care valoare este NULL) la vectorul envz (*envz, *envz_len) i actualizeaza *envz i *envz_len. In cazul in care exista o intrare cu acelai nume, aceasta este eliminata. envz_entry() cauta nume in vectorul envz (envz, envz_len) i returneaza intrarea daca este gasita sau NULL in caz contrar. envz_get() cauta nume in vectorul envz (envz, envz_len) i returneaza valoarea daca este gasita, sau NULL daca nu; (reinei ca valoarea poate fi, de asemenea, NULL, i anume atunci cand exista o intrare pentru nume fara semnul ,,="). envz_merge() adauga fiecare intrare din envz2 la *envz, ca i cum ar fi facut-o cu envz_add(). Daca argumentul override este adevarat, atunci valorile din envz2 le vor inlocui pe cele cu acelai nume din *envz, altfel nu. envz_remove() elimina intrarea pentru nume din (*envz, *envz_len), daca a existat una. envz_strip() elimina toate intrarile cu valoarea NULL. VALOAREA RETURNATA Toate funciile envz care efectueaza alocarea de memorie au un tip de returnare error_t (un tip intreg) i returneaza 0 in caz de succes i ENOMEM daca apare o eroare de alocare. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |envz_add(), envz_entry(), envz_get(), | Sigurana firelor | MT-Safe | |envz_merge(), envz_remove(), | | | |envz_strip() | | | +--------------------------------------+---------------------+---------+ STANDARDE GNU. EXEMPLE #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); } CONSULTAI I argz_add(3) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 envz_add(3)