table of contents
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
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)
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¶
Aceste funcții sunt o extensie 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¶
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 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.
5 februarie 2023 | Pagini de manual de Linux 6.03 |