.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 2002 walter harms (walter.harms@informatik.uni-oldenburg.de) .\" .\" SPDX-License-Identifier: GPL-1.0-or-later .\" .\" based on the description in glibc source and infopages .\" .\" Corrections and additions, aeb .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH argz_add 3 "20 iulie 2023" "Pagini de manual de Linux 6.05.01" .SH 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 .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH REZUMAT .nf \fB#include \fP .PP \fBerror_t argz_add(char **restrict \fP\fIargz\fP\fB, size_t *restrict \fP\fIargz_len\fP\fB,\fP \fB const char *restrict \fP\fIstr\fP\fB);\fP .PP \fBerror_t argz_add_sep(char **restrict \fP\fIargz\fP\fB, size_t *restrict \fP\fIargz_len\fP\fB,\fP \fB const char *restrict \fP\fIstr\fP\fB, int \fP\fIdelim\fP\fB);\fP .PP 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 .PP \fBsize_t argz_count(const char *\fP\fIargz\fP\fB, size_t \fP\fIargz_len\fP\fB);\fP .PP \fBerror_t argz_create(char *const \fP\fIargv\fP\fB[], char **restrict \fP\fIargz\fP\fB,\fP \fB size_t *restrict \fP\fIargz_len\fP\fB);\fP .PP \fBerror_t argz_create_sep(const char *restrict \fP\fIstr\fP\fB, int \fP\fIsep\fP\fB,\fP \fB char **restrict \fP\fIargz\fP\fB, size_t *restrict \fP\fIargz_len\fP\fB);\fP .PP \fBvoid argz_delete(char **restrict \fP\fIargz\fP\fB, size_t *restrict \fP\fIargz_len\fP\fB,\fP \fB char *restrict \fP\fIentry\fP\fB);\fP .PP \fBvoid argz_extract(const char *restrict \fP\fIargz\fP\fB, size_t \fP\fIargz_len\fP\fB,\fP \fB char **restrict \fP\fIargv\fP\fB);\fP .PP \fBerror_t argz_insert(char **restrict \fP\fIargz\fP\fB, size_t *restrict \fP\fIargz_len\fP\fB,\fP \fB char *restrict \fP\fIbefore\fP\fB, const char *restrict \fP\fIentry\fP\fB);\fP .PP \fBchar *argz_next(const char *restrict \fP\fIargz\fP\fB, size_t \fP\fIargz_len\fP\fB,\fP \fB const char *restrict \fP\fIentry\fP\fB);\fP .PP \fBerror_t argz_replace(char **restrict \fP\fIargz\fP\fB, size_t *restrict \fP\fIargz_len\fP\fB,\fP \fB const char *restrict \fP\fIstr\fP\fB, const char *restrict \fP\fIwith\fP\fB,\fP \fB unsigned int *restrict \fP\fIreplace_count\fP\fB);\fP .PP \fBvoid argz_stringify(char *\fP\fIargz\fP\fB, size_t \fP\fIlen\fP\fB, int \fP\fIsep\fP\fB);\fP .fi .SH DESCRIERE Aceste funcții sunt specifice glibc. .PP 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 („\e0”). În cazul în care lungimea este diferită de zero, ultimul octet al memoriei tampon trebuie să fie un octet nul. .PP 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 \fBmalloc\fP(3), astfel încât \fBfree\fP(3) poate fi utilizată pentru a dispune din nou de aceștia. .PP \fBargz_add\fP() adaugă șirul \fIstr\fP la sfârșitul matricei \fI*argz\fP și actualizează \fI*argz\fP și \fI*argz_len\fP. .PP \fBargz_add_sep\fP() este similară, dar împarte șirul \fIstr\fP în subșiruri separate de delimitatorul \fIdelim\fP. De exemplu, se poate utiliza acest lucru pe o rută de căutare UNIX cu delimitatorul „:”. .PP \fBargz_append\fP() adaugă vectorul argz (\fIbuf\fP,\ \fIbuf_len\fP) după (\fI*argz\fP,\ \fI*argz_len\fP) și actualizează \fI*argz\fP și \fI*argz_len\fP; (astfel, \fI*argz_len\fP va fi mărit cu \fIbuf_len\fP). .PP \fBargz_count\fP() numără numărul de șiruri, adică numărul de octeți nuli („\e0”), în (\fIargz\fP,\ \fIargz_len\fP). .PP \fBargz_create\fP() convertește un vector de argumente în stil UNIX \fIargv\fP, terminat prin \fI(char\ *)\ 0\fP, într\-un vector argz (\fI*argz\fP,\ \fI*argz_len\fP). .PP \fBargz_create_sep\fP() convertește șirul de caractere cu terminație nulă \fIstr\fP într\-un vector argz (\fI*argz\fP,\ \fI*argz_len\fP) prin fragmentarea acestuia la fiecare apariție a separatorului \fIsep\fP. .PP \fBargz_delete\fP() elimină subșirul indicat de \fIentry\fP din vectorul argz (\fI*argz\fP,\ \fI*argz_len\fP) și actualizează \fI*argz\fP și \fI*argz_len\fP. .PP \fBargz_extract\fP() este opusul lui \fBargz_create\fP(). Acesta ia vectorul argz (\fIargz\fP,\ \fIargz_len\fP) și umple matricea care începe la \fIargv\fP cu indicatori la subșiruri și un NULL final, obținând un vector argv în stil UNIX. Matricea \fIargv\fP trebuie să aibă loc pentru \fIargz_count\fP(\fIargz\fP, \fIargz_len\fP) + 1 indicatori. .PP \fBargz_insert\fP() este opusul lui \fBargz_delete\fP(). Acesta inserează argumentul \fIentry\fP la poziția \fIbefore\fP în vectorul argz (\fI*argz\fP,\ \fI*argz_len\fP) și actualizează \fI*argz\fP și \fI*argz_len\fP. În cazul în care \fIbefore\fP este NULL, atunci \fIentry\fP va fi inserat la sfârșit. .PP \fBargz_next\fP() este o funcție care permite parcurgerea vectorului argz. Dacă \fIentry\fP 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. .PP \fBargz_replace\fP() înlocuiește fiecare apariție a lui \fIstr\fP cu \fIwith\fP, realocând argz după cum este necesar. În cazul în care \fIreplace_count\fP nu este NULL, \fI*replace_count\fP va fi incrementat cu numărul de înlocuiri. .PP \fBargz_stringify\fP() este opusul lui \fBargz_create_sep\fP(). Transformă vectorul argz într\-un șir normal prin înlocuirea tuturor octeților nuli („\e0”), cu excepția ultimului, cu \fIsep\fP. .SH "VALOAREA RETURNATĂ" Toate funcțiile argz care efectuează alocarea de memorie au un tip de returnare \fIerror_t\fP (un tip întreg) și returnează 0 pentru succes și \fBENOMEM\fP dacă apare o eroare de alocare. .SH ATRIBUTE Pentru o explicație a termenilor folosiți în această secțiune, a se vedea \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Interfață Atribut Valoare T{ .na .nh \fBargz_add\fP(), \fBargz_add_sep\fP(), \fBargz_append\fP(), \fBargz_count\fP(), \fBargz_create\fP(), \fBargz_create_sep\fP(), \fBargz_delete\fP(), \fBargz_extract\fP(), \fBargz_insert\fP(), \fBargz_next\fP(), \fBargz_replace\fP(), \fBargz_stringify\fP() T} Siguranța firelor MT\-Safe .TE .sp 1 .SH STANDARDE GNU. .SH ERORI Vectorii Argz fără un octet de terminare nul pot duce la erori de segmentare. .SH "CONSULTAȚI ȘI" \fBenvz_add\fP(3) .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .