envz_add(3) Library Functions Manual envz_add(3)

envz_add, envz_entry, envz_get, envz_merge, envz_remove, envz_strip - suport pentru șiruri de (variabile de) mediu

Biblioteca C standard (libc, -lc)

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

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 (envzenvz_len) și returnează intrarea dacă este găsită sau NULL în caz contrar.

envz_get() caută nume în vectorul envz (envzenvz_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.

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.

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

GNU.

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

argz_add(3)

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 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.

2 mai 2024 Pagini de manual de Linux 6.8