.\" -*- coding: UTF-8 -*- '\" t .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH getline 3 "17 mai 2025" "Pagini de manual de Linux 6.15" .SH NUME getline, getdelim \- intrare de șiruri delimitate .SH BIBLIOTECA Biblioteca C standard (\fIlibc\fP, \fI\-lc\fP) .SH SINOPSIS .nf \fB#include \fP .P \fBssize_t getline(char **restrict \fP\fIlineptr\fP\fB, size_t *restrict \fP\fIn\fP\fB,\fP \fB FILE *restrict \fP\fIstream\fP\fB);\fP \fBssize_t getdelim(char **restrict \fP\fIlineptr\fP\fB, size_t *restrict \fP\fIn\fP\fB,\fP \fB int \fP\fIdelim\fP\fB, FILE *restrict \fP\fIstream\fP\fB);\fP .fi .P .RS -4 Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați \fBfeature_test_macros\fP(7)): .RE .P \fBgetline\fP(), \fBgetdelim\fP(): .nf Începând cu glibc 2.10 _POSIX_C_SOURCE >= 200809L Înainte de glibc 2.10: _GNU_SOURCE .fi .SH DESCRIERE \fBgetline\fP() citește o linie întreagă din \fIstream\fP, stocând adresa din memoria tampon care conține textul în \fI*lineptr\fP. Memoria tampon este terminată cu null și include caracterul de linie nouă, dacă a fost găsit unul. .P Dacă \fI*lineptr\fP este stabilit la NULL înainte de apel, atunci \fBgetline\fP() va aloca o memorie tampon pentru stocarea liniei. Această memorie tampon trebuie eliberată de către programul utilizatorului chiar dacă \fBgetline\fP() a eșuat. .P Alternativ, înainte de a apela \fBgetline\fP(), \fI*lineptr\fP poate conține un indicator la o memorie tampon alocată de \fBmalloc\fP(3) cu o dimensiune de \fI*n\fP octeți. În cazul în care memoria tampon nu este suficient de mare pentru a conține linia, \fBgetline\fP() o redimensionează cu \fBrealloc\fP(3), actualizând \fI*lineptr\fP și \fI*n\fP, după cum este necesar. .P În ambele cazuri, la un apel reușit, \fI*lineptr\fP și \fI*n\fP vor fi actualizate pentru a reflecta adresa memoriei tampon și, respectiv, dimensiunea alocată. .P \fBgetdelim\fP() funcționează ca \fBgetline\fP(), cu excepția faptului că un delimitator de linie, altul decât linia nouă, poate fi specificat ca argument \fIdelimiter\fP. La fel ca în cazul \fBgetline\fP(), nu se adaugă un caracter de delimitare dacă nu a fost prezent unul în intrare înainte de a se ajunge la sfârșitul fișierului. .SH "VALOAREA RETURNATĂ" În caz de succes, \fBgetline\fP() și \fBgetdelim\fP() returnează numărul de caractere citite, inclusiv caracterul de delimitare, dar fără a include octetul de terminare nul („\[rs]0”). Această valoare poate fi utilizată pentru a gestiona octeții nuli încorporați în linia citită. .P La sfârșitul fișierului, ambele funcții returnează \-1 cu indicatorul de sfârșit de fișier al fluxului de fișiere activat. În caz de eroare, ambele funcții returnează \-1 cu indicatorul de eroare a fluxului de fișiere activat, iar \fIerrno\fP este configurată pentru a indica eroarea. .P Dacă \fI*lineptr\fP a fost stabilit la NULL înainte de apel, atunci memoria tampon trebuie eliberată de către programul utilizatorului chiar și în caz de eșec. .SH ERORI\-IEȘIRE .TP \fBEINVAL\fP Argumente incorecte (\fIn\fP sau \fIlineptr\fP este NULL, sau \fIstream\fP nu este valid). .TP \fBENOMEM\fP A eșuat alocarea sau realocarea memoriei tampon de linie. .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 \fBgetline\fP(), \fBgetdelim\fP() T} Siguranța firelor MT\-Safe .TE .SH STANDARDE POSIX.1\-2008. .SH ISTORIC GNU, POSIX.1\-2008. .SH EXEMPLE .\" SRC BEGIN (getline.c) .EX #define _GNU_SOURCE #include #include \& int main(int argc, char *argv[]) { FILE *stream; char *line = NULL; size_t size = 0; ssize_t nread; \& if (argc != 2) { fprintf(stderr, "Utilizare: %s \[rs]n", argv[0]); exit(EXIT_FAILURE); } \& stream = fopen(argv[1], "r"); if (stream == NULL) { perror("fopen"); exit(EXIT_FAILURE); } \& while ((nread = getline(&line, &size, stream)) != \-1) { printf("Linie preluată de lungime %zd:\[rs]n", nread); fwrite(line, nread, 1, stdout); } \& free(line); fclose(stream); exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "CONSULTAȚI ȘI" \fBread\fP(2), \fBfgets\fP(3), \fBfopen\fP(3), \fBfread\fP(3), \fBscanf\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 .