Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       getline, getdelim - intrare de șiruri delimitate

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <stdio.h>

       ssize_t getline(char **restrict lineptr, size_t *restrict n,
                       FILE *restrict stream);
       ssize_t getdelim(char **restrict lineptr, size_t *restrict n,
                       int delim, FILE *restrict stream);

   Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

       getline(), getdelim():
           Începând cu glibc 2.10
               _POSIX_C_SOURCE >= 200809L
           Înainte de glibc 2.10:
               _GNU_SOURCE

DESCRIERE

       getline()  citește  o linie întreagă din stream, stocând adresa din memoria tampon care conține textul în
       *lineptr.  Memoria tampon este terminată cu null și include caracterul de linie nouă, dacă a  fost  găsit
       unul.

       Dacă  *lineptr  este  stabilit la NULL înainte de apel, atunci getline() va aloca o memorie tampon pentru
       stocarea liniei. Această memorie tampon trebuie eliberată de către programul  utilizatorului  chiar  dacă
       getline() a eșuat.

       Alternativ, înainte de a apela getline(), *lineptr poate conține un indicator la o memorie tampon alocată
       de  malloc(3)  cu  o  dimensiune  de *n octeți. În cazul în care memoria tampon nu este suficient de mare
       pentru a conține linia, getline() o redimensionează cu realloc(3), actualizând *lineptr și *n,  după  cum
       este necesar.

       În  ambele cazuri, la un apel reușit, *lineptr și *n vor fi actualizate pentru a reflecta adresa memoriei
       tampon și, respectiv, dimensiunea alocată.

       getdelim() funcționează ca getline(), cu excepția faptului că un delimitator de linie, altul decât  linia
       nouă,  poate  fi specificat ca argument delimiter. La fel ca în cazul getline(), 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.

VALOAREA RETURNATĂ

       În caz de succes, getline() și getdelim() returnează numărul de caractere citite, inclusiv caracterul  de
       delimitare, dar fără a include octetul de terminare nul („\0”). Această valoare poate fi utilizată pentru
       a gestiona octeții nuli încorporați în linia citită.

       Ambele funcții returnează -1 în cazul în care nu se reușește să se citească o linie (inclusiv în cazul în
       care  se  ajunge  la  sfârșitul  fișierului).  În cazul unui eșec, errno este configurată pentru a indica
       eroarea.

       Dacă *lineptr 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.

ERORI-IEȘIRE

       EINVAL Argumente incorecte (n sau lineptr este NULL, sau stream nu este valid).

       ENOMEM A eșuat alocarea sau realocarea memoriei tampon de linie.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
       ┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
       │ InterfațăAtributValoare │
       ├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │ getline(), getdelim()                                                   │ Siguranța firelor │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       POSIX.1-2008.

ISTORIC

       GNU, POSIX.1-2008.

EXEMPLE

       #define _GNU_SOURCE
       #include <stdio.h>
       #include <stdlib.h>

       int
       main(int argc, char *argv[])
       {
           FILE *stream;
           char *line = NULL;
           size_t len = 0;
           ssize_t nread;

           if (argc != 2) {
               fprintf(stderr, "Utilizare: %s <fișier>\n", argv[0]);
               exit(EXIT_FAILURE);
           }

           stream = fopen(argv[1], "r");
           if (stream == NULL) {
               perror("fopen");
               exit(EXIT_FAILURE);
           }

           while ((nread = getline(&line, &len, stream)) != -1) {
               printf("Linie preluată de lungime %zd:\n", nread);
               fwrite(line, nread, 1, stdout);
           }

           free(line);
           fclose(stream);
           exit(EXIT_SUCCESS);
       }

CONSULTAȚI ȘI

       read(2), fgets(3), fopen(3), fread(3), scanf(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  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.

Pagini de manual de Linux 6.9.1                   15 iunie 2024                                       getline(3)