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 - funcții pentru a manipula o listă argz

BIBLIOTECA
Biblioteca C standard (libc, -lc)

SINOPSIS
#include <argz.h>

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 - funcții pentru a manipula o listă 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 funcții sunt specifice glibc.

Un vector argz este un indicator către o memorie tampon de caractere împreună cu o lungime. Memoria tampon de caractere este interpretată ca o matrice de șiruri de caractere, în care șirurile sunt separate de octeți nuli („\0”). În cazul în care lungimea este diferită de zero, ultimul octet al memoriei tampon trebuie să fie un octet nul.

Aceste funcții sunt destinate manipulării vectorilor argz. Perechea (NULL,0) este un vector argz și, invers, vectorii argz de lungime 0 trebuie să aibă un indicator nul. Alocarea vectorilor argz care nu sunt goi se face utilizând malloc(3), astfel încât free(3) poate fi utilizată pentru a dispune din nou de aceștia.

argz_add() adaugă șirul str la sfârșitul matricei *argz și actualizează *argz și *argz_len.

argz_add_sep() este similară, dar împarte șirul str în subșiruri separate de delimitatorul delim. De exemplu, se poate utiliza acest lucru pe o rută de căutare UNIX cu delimitatorul „:”.

argz_append() adaugă vectorul argz (buf, buf_len) după (*argz, *argz_len) și actualizează *argz și *argz_len; (astfel, *argz_len va fi mărit cu buf_len).

argz_count() numără numărul de șiruri, adică numărul de octeți nuli („\0”), în (argz, argz_len).

argz_create() convertește un vector de argumente în stil UNIX argv, terminat prin (char *) 0, într-un vector argz (*argz, *argz_len).

argz_create_sep() convertește șirul de caractere cu terminație nulă str într-un vector argz (*argz, *argz_len) prin fragmentarea acestuia la fiecare apariție a separatorului sep.

argz_delete() elimină subșirul indicat de entry din vectorul argz (*argz, *argz_len) și actualizează *argz și *argz_len.

argz_extract() este opusul lui argz_create(). Acesta ia vectorul argz (argz, argz_len) și umple matricea care începe la argv cu indicatori la subșiruri și un NULL final, obținând un vector argv în stil UNIX. Matricea argv trebuie să aibă loc pentru argz_count(argz, argz_len) + 1 indicatori.

argz_insert() este opusul lui argz_delete(). Acesta inserează argumentul entry la poziția before în vectorul argz (*argz, *argz_len) și actualizează *argz și *argz_len. În cazul în care before este NULL, atunci entry va fi inserat la sfârșit.

argz_next() este o funcție care permite parcurgerea vectorului argz. Dacă entry este NULL, se returnează prima intrare. În caz contrar, se returnează următoarea intrare. În cazul în care nu există o intrare următoare, se returnează NULL.

argz_replace() înlocuiește fiecare apariție a lui str cu with, realocând argz după cum este necesar. În cazul în care replace_count nu este NULL, *replace_count va fi incrementat cu numărul de înlocuiri.

argz_stringify() este opusul lui argz_create_sep(). Transformă vectorul argz într-un șir normal prin înlocuirea tuturor octeților nuli („\0”), cu excepția ultimului, cu sep.

VALOAREA RETURNATĂ
Toate funcțiile argz care efectuează alocarea de memorie au un tip de returnare error_t (un tip întreg) și returnează 0 pentru 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
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() | Siguranța firelor | MT-Safe

STANDARDE
GNU.

ERORI
Vectorii Argz fără un octet de terminare nul pot duce la erori de segmentare.

CONSULTAȚI ȘI
envz_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.