.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 2001 John Levon .\" 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 \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 #include \& int main(int argc, char *argv[]) { FILE *stream; char *line = NULL; size_t len = 0; ssize_t nread; \& if (argc != 2) { fprintf(stderr, "Usage: %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, &len, stream)) != \-1) { printf("Retrieved line of length %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 Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Andrzej Krzysztofowicz , Robert Luberda i Michał Kułach . .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 .