argz_add(3) Library Functions Manual argz_add(3) NUME argz_add, argz_add_sep, argz_append, argz_count, argz_create, argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, argz_replace, argz_stringify - funcii pentru a manipula o lista argz BIBLIOTECA Biblioteca C standard (libc, -lc) SINOPSIS #include error_t argz_add(char **restrict argz, size_t *restrict argz_len, const char *restrict str); error_t argz_add_sep(char **restrict argz, size_t *restrict argz_len, const char *restrict str, int delim); argz_add, argz_add_sep, argz_append, argz_count, argz_create, argz_create_sep, argz_delete, argz_extract, argz_insert, argz_next, argz_replace, argz_stringify - funcii pentru a manipula o lista argz size_t argz_count(const char *argz, size_t argz_len); error_t argz_create(char *const argv[], char **restrict argz, size_t *restrict argz_len); error_t argz_create_sep(const char *restrict str, int sep, char **restrict argz, size_t *restrict argz_len); void argz_delete(char **restrict argz, size_t *restrict argz_len, char *restrict entry); void argz_extract(const char *restrict argz, size_t argz_len, char **restrict argv); error_t argz_insert(char **restrict argz, size_t *restrict argz_len, char *restrict before, const char *restrict entry); char *argz_next(const char *restrict argz, size_t argz_len, const char *restrict entry); error_t argz_replace(char **restrict argz, size_t *restrict argz_len, const char *restrict str, const char *restrict with, unsigned int *restrict replace_count); void argz_stringify(char *argz, size_t len, int sep); DESCRIERE Aceste funcii sunt specifice glibc. Un vector argz este un indicator catre o memorie tampon de caractere impreuna cu o lungime. Memoria tampon de caractere este interpretata ca o matrice de iruri de caractere, in care irurile sunt separate de octei nuli (,,\0"). In cazul in care lungimea este diferita de zero, ultimul octet al memoriei tampon trebuie sa fie un octet nul. Aceste funcii sunt destinate manipularii vectorilor argz. Perechea (NULL,0) este un vector argz i, invers, vectorii argz de lungime 0 trebuie sa aiba un indicator nul. Alocarea vectorilor argz care nu sunt goi se face utilizand malloc(3), astfel incat free(3) poate fi utilizata pentru a dispune din nou de acetia. argz_add() adauga irul str la sfaritul matricei *argz i actualizeaza *argz i *argz_len. argz_add_sep() este similara, dar imparte irul str in subiruri separate de delimitatorul delim. De exemplu, se poate utiliza acest lucru pe o ruta de cautare UNIX cu delimitatorul ,,:". argz_append() adauga vectorul argz (buf, buf_len) dupa (*argz, *argz_len) i actualizeaza *argz i *argz_len; (astfel, *argz_len va fi marit cu buf_len). argz_count() numara numarul de iruri, adica numarul de octei nuli (,,\0"), in (argz, argz_len). argz_create() convertete un vector de argumente in stil UNIX argv, terminat prin (char *) 0, intr-un vector argz (*argz, *argz_len). argz_create_sep() convertete irul de caractere cu terminaie nula str intr-un vector argz (*argz, *argz_len) prin fragmentarea acestuia la fiecare apariie a separatorului sep. argz_delete() elimina subirul indicat de entry din vectorul argz (*argz, *argz_len) i actualizeaza *argz i *argz_len. argz_extract() este opusul lui argz_create(). Acesta ia vectorul argz (argz, argz_len) i umple matricea care incepe la argv cu indicatori la subiruri i un NULL final, obinand un vector argv in stil UNIX. Matricea argv trebuie sa aiba loc pentru argz_count(argz, argz_len) + 1 indicatori. argz_insert() este opusul lui argz_delete(). Acesta insereaza argumentul entry la poziia before in vectorul argz (*argz, *argz_len) i actualizeaza *argz i *argz_len. In cazul in care before este NULL, atunci entry va fi inserat la sfarit. argz_next() este o funcie care permite parcurgerea vectorului argz. Daca entry este NULL, se returneaza prima intrare. In caz contrar, se returneaza urmatoarea intrare. In cazul in care nu exista o intrare urmatoare, se returneaza NULL. argz_replace() inlocuiete fiecare apariie a lui str cu with, realocand argz dupa cum este necesar. In cazul in care replace_count nu este NULL, *replace_count va fi incrementat cu numarul de inlocuiri. argz_stringify() este opusul lui argz_create_sep(). Transforma vectorul argz intr-un ir normal prin inlocuirea tuturor octeilor nuli (,,\0"), cu excepia ultimului, cu sep. VALOAREA RETURNATA Toate funciile argz care efectueaza alocarea de memorie au un tip de returnare error_t (un tip intreg) i returneaza 0 pentru 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 | +--------------------------------------+---------------------+---------+ |argz_add(), argz_add_sep(), | Sigurana firelor | MT-Safe | |argz_append(), argz_count(), | | | |argz_create(), argz_create_sep(), | | | |argz_delete(), argz_extract(), | | | |argz_insert(), argz_next(), | | | |argz_replace(), argz_stringify() | | | +--------------------------------------+---------------------+---------+ STANDARDE GNU. ERORI Vectorii Argz fara un octet de terminare nul pot duce la erori de segmentare. CONSULTAI I envz_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.18 8 februarie 2026 argz_add(3)