Available in

(3) (3)/es (3)/fr (3)/ja (3)/pl (3abz)

TOC

GETLINE(3)               Podrcznik programisty Linuksa              GETLINE(3)



NAZWA

       getline, getdelim - wprowadzanie acuchw rozgraniczonych

SKADNIA

       #define _GNU_SOURCE
       #include <stdio.h>

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

OPIS

       getline()  odczytuje  ca  lini  ze strumienia stream, przechowujc adres
       bufora zawierajcego tekst w *lineptr. Bufor jest zakoczony znakiem null
       i zawiera znak nowej linii, jeli go napotkano.

       Gdy  *lineptr jest rwne NULL, to funkcja getline() przydziela bufor dla
       umieszczenia w nim zawartoci linii, ktry to bufor musi zosta  zwolniony
       przez  program  uytkownika.  Alternatywnie,  przed  wywoaniem getline()
       *lineptr moe zawiera wskanik do bufora przydzielonego za pomoc malloc()
       o  rozmiarze  *n  bajtw.  Gdy  rozmiar  bufora nie jest wystarczajcy do
       umieszczenia w nim  odczytanej  linii,  getline()  rozszerzy  bufor  do
       odpowiedniego  rozmiaru  za  pomoc realloc(), modyfikujc *lineptr i *n,
       jeli bdzie to potrzebne. W kadym razie, po pomylnym wywoaniu *lineptr i
       *n  bd  zaktualizowane  tak,  aby  odzwierciedli,  odpowiednio, adres i
       rozmiar bufora.

       getdelim() dziaa jak getline(), z tym wyjtkiem e jako  argument  delim-
       iter mona poda ogranicznik linii inny ni znak nowej linii. Podobnie jak
       dla getline(), znak ogranicznika nie jest dodawany, gdy nie wystpowa  w
       danych wejciowych przed osigniciem koca pliku.

WARTO ZWRACANA

       Po  pomylnym  zakoczeniu,  getline()  i getdelim() zwracaj liczb odczy-
       tanych znakw, cznie ze znakiem ogranicznika, ale  nie  wczajc  koczcego
       bajtu  null.  Warto  ta  moe  suy  to wychwycenia znakw nullzawartych w
       odczytanej linii.

       Obie funkcje zwracaj -1, gdy nie uda si odczyta linii (wczajc w to  prb
       czytania na kocu pliku).

BDY

       EINVAL Bdne  wartoci parametrw (n lub lineptr rwne NULL, lub nieprawid-
              owy stream ).

PRZYKAD

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

       int main(void)
       {
            FILE * fp;
            char * line = NULL;
            size_t len = 0;
            ssize_t read;
            fp = fopen("/etc/motd", "r");
            if (fp == NULL)
                 exit(EXIT_FAILURE);
            while ((read = getline(&line, &len, fp)) != -1) {
                 printf("Odczytano lini o dugoci %zu :\n", read);
                 printf("%s", line);
            }
            if (line)
                 free(line);
            return EXIT_SUCCESS;
       }

ZGODNE Z

       Zarwno getline(), jak i getdelim() s rozszerzeniami GNU. S one  dostpne
       od libc 4.6.27.

ZOBACZ TAKE

       read(2), fgets(3), fopen(3), fread(3), gets(3), scanf(3)



GNU                               2006-05-17                        GETLINE(3)

COMMENTS

Add your comment here. Whitespace and linebreaks are preserved. URLs are linked automatically.
CAPTCHA

No HTML allowed. URLs will be linked with nofollow attribute. Whitespace is preserved.