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)

SINOPSIS
#include <envz.h>

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 funcții sunt specifice glibc.

Un vector argz este un indicator către o memorie tampon de caractere împreună cu o lungime, a se vedea argz_add(3). Un vector envz este un vector argz special, și anume unul în care șirurile de caractere au forma „nume=valoare”. Tot ceea ce urmează după primul „=” este considerat a fi valoarea. Dacă nu există niciun „=”, valoarea este considerată NULL; (în timp ce valoarea în cazul în care există un „=” la sfârșit este șirul gol "").

Aceste funcții sunt destinate manipulării vectorilor envz.

envz_add() adaugă șirul de caractere „nume=valoare” (în cazul în care valoare nu este NULL) sau „nume” (în cazul în care valoare este NULL) la vectorul envz (*envz, *envz_len) și actualizează *envz și *envz_len. În cazul în care exista o intrare cu același nume, aceasta este eliminată.

envz_entry() caută nume în vectorul envz (envz, envz_len) și returnează intrarea dacă este găsită sau NULL în caz contrar.

envz_get() caută nume în vectorul envz (envz, envz_len) și returnează valoarea dacă este găsită, sau NULL dacă nu; (rețineți că valoarea poate fi, de asemenea, NULL, și anume atunci când există o intrare pentru nume fără semnul „=”).

envz_merge() adaugă fiecare intrare din envz2 la *envz, ca și cum ar fi făcut-o cu envz_add(). Dacă argumentul override este adevărat, atunci valorile din envz2 le vor înlocui pe cele cu același nume din *envz, altfel nu.

envz_remove() elimină intrarea pentru nume din (*envz, *envz_len), dacă a existat una.

envz_strip() elimină toate intrările cu valoarea NULL.

VALOAREA RETURNATĂ
Toate funcțiile envz care efectuează alocarea de memorie au un tip de returnare error_t (un tip întreg) și returnează 0 în caz de succes și ENOMEM dacă apare o eroare de alocare.

ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare
envz_add(), envz_entry(), envz_get(), envz_merge(), envz_remove(), envz_strip() | Siguranța firelor | MT-Safe

STANDARDE
GNU.

EXEMPLE
    #include <envz.h>
    #include <stdio.h>
    #include <stdlib.h>

    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);
    }

CONSULTAȚI ȘI
argz_add(3)

TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 (https://www.gnu.org/licenses/gpl-3.0.html) sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.

Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.