.\" -*- coding: UTF-8 -*-
'\" t
.\" Copyright (c) 2001 John Levon <moz@compsoc.man.ac.uk>
.\" Based in part on GNU libc documentation
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH getline 3 "15 czerwca 2024 r." "Linux man\-pages 6.9.1" 
.SH NAZWA
getline, getdelim \- wprowadza łańcuchy rozgraniczone
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <stdio.h>\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
Wymagane ustawienia makr biblioteki glibc (patrz \fBfeature_test_macros\fP(7)):
.RE
.P
\fBgetline\fP(), \fBgetdelim\fP():
.nf
    Od glibc 2.10:
        _POSIX_C_SOURCE >= 200809L
    Przed glibc 2.10:
        _GNU_SOURCE
.fi
.SH OPIS
\fBgetline\fP() odczytuje cały wiersz ze strumienia \fIstream\fP, przechowując
adres bufora zawierającego tekst w \fI*lineptr\fP. Bufor jest zakończony
znakiem NULL i zawiera znak nowego wiersza, jeśli go napotkano.
.P
Gdy \fI*lineptr\fP jest ustawione na NULL przed wywołaniem, to funkcja
\fBgetline\fP() przydziela bufor dla umieszczenia w nim zawartości
wiersza. Bufor ten powinien zostać zwolniony przez program użytkownika nawet
wówczas, gdy \fBgetline\fP() zawiedzie.
.P
Alternatywnie, przed wywołaniem \fBgetline\fP() \fI*lineptr\fP może zawierać
wskaźnik do bufora przydzielonego za pomocą \fBmalloc\fP() o rozmiarze \fI*n\fP
bajtów. Gdy rozmiar bufora nie jest wystarczający do umieszczenia w nim
odczytanego wiersza, \fBgetline\fP() rozszerzy go do odpowiedniego rozmiaru za
pomocą \fBrealloc\fP(), modyfikując \fI*lineptr\fP i \fI*n\fP, jeśli będzie to
potrzebne.
.P
W każdym razie, po pomyślnym wywołaniu \fI*lineptr\fP i \fI*n\fP będą
zaktualizowane tak, aby odzwierciedlić, odpowiednio, adres i rozmiar bufora.
.P
\fBgetdelim\fP() działa jak \fBgetline\fP() z tym wyjątkiem, że jako argument
\fIdelimiter\fP można podać ogranicznik wiersza inny niż znak nowej
wiersza. Podobnie jak dla \fBgetline\fP(), znak ogranicznika nie jest dodawany,
gdy nie występował w danych wejściowych przed osiągnięciem końca pliku.
.SH "WARTOŚĆ ZWRACANA"
Po pomyślnym zakończeniu, \fBgetline\fP() i \fBgetdelim\fP() zwracają liczbę
odczytanych znaków, łącznie ze znakiem ogranicznika, ale nie włączając
kończącego bajtu null (\[aq]\[rs]0\[aq]). Wartość ta może służyć to
wychwycenia znaków null zawartych w odczytanym wierszu.
.P
Obie funkcje zwracają \-1, gdy nie uda się odczytać wiersza (włączając w to
próbę czytania na końcu pliku). W razie niepowodzenia ustawiane jest
\fIerrno\fP, aby wskazać błąd.
.P
Gdy \fI*lineptr\fP było ustawione na NULL przed wywołaniem, to bufor powinien
zostać zwolniony przez program użytkownika nawet w przypadku niepowodzenia.
.SH BŁĘDY
.TP 
\fBEINVAL\fP
Błędne wartości parametrów (\fIn\fP lub \fIlineptr\fP równe NULL lub nieprawidłowy
\fIstream\fP).
.TP 
\fBENOMEM\fP
Nie powiódł się przydział pamięci dla bufora wiersza.
.SH ATRYBUTY
Informacje o pojęciach używanych w tym rozdziale można znaleźć w podręczniku
\fBattributes\fP(7).
.TS
allbox;
lbx lb lb
l l l.
Interfejs	Atrybut	Wartość
T{
.na
.nh
\fBgetline\fP(),
\fBgetdelim\fP()
T}	Bezpieczeństwo wątkowe	MT\-bezpieczne
.TE
.SH STANDARDY
POSIX.1\-2008.
.SH HISTORIA
GNU, POSIX.1\-2008.
.SH PRZYKŁADY
.\" SRC BEGIN (getline.c)
.EX
#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, "Użycie: %s <plik>\[rs]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("Pobrano wiersz o długości %zd:\[rs]n", nread);
        fwrite(line, nread, 1, stdout);
    }
\&
    free(line);
    fclose(stream);
    exit(EXIT_SUCCESS);
}
.EE
.\" SRC END
.SH "ZOBACZ TAKŻE"
\fBread\fP(2), \fBfgets\fP(3), \fBfopen\fP(3), \fBfread\fP(3), \fBscanf\fP(3)
.PP
.SH TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika:
Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>,
Robert Luberda <robert@debian.org>
i
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
