.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1990-1991, The Regents of the University of California. .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH fread 3 "28 czerwca 2025 r." "Linux man\-pages 6.15" .SH NAZWA fread, fwrite \- odczytuje/zapisuje strumień binarny .SH BIBLIOTEKA Standardowa biblioteka C (\fIlibc\fP,\ \fI\-lc\fP) .SH SKŁADNIA .nf \fB#include \fP .P \fBsize_t fread(\fPsize_t size, size_t n; \fB void \fP\fIptr\fP\fB[restrict \fP\fIsize\fP\fB * \fP\fIn\fP\fB],\fP \fB size_t \fP\fIsize\fP\fB, size_t \fP\fIn\fP\fB,\fP \fB FILE *restrict \fP\fIstream\fP\fB);\fP \fBsize_t fwrite(\fPsize_t size, size_t n; \fB const void \fP\fIptr\fP\fB[restrict \fP\fIsize\fP\fB * \fP\fIn\fP\fB],\fP \fB size_t \fP\fIsize\fP\fB, size_t \fP\fIn\fP\fB,\fP \fB FILE *restrict \fP\fIstream\fP\fB);\fP .fi .SH OPIS Funkcja \fBfread\fP() odczytuje \fIn\fP elementów danych, każdy o rozmiarze \fIsize\fP bajtów, ze strumienia wskazywanego przez \fIstream\fP, do miejsca w pamięci wskazywanego przez \fIptr\fP. .P Funkcja \fBfwrite\fP() zapisuje \fIn\fP elementów danych, każdy o rozmiarze \fIsize\fP bajtów, do strumienia wskazywanego przez \fIstream\fP, pobierając je z miejsca w pamięci wskazywanego przez \fIptr\fP. .P Informacje o nieblokujących odpowiednikach znajdują się w \fBunlocked_stdio\fP(3). .SH "WARTOŚĆ ZWRACANA" Funkcje \fBfread\fP() oraz \fBfwrite\fP(), jeśli się powiodą, zwracają liczbę faktycznie odczytanych lub zapisanych elementów. Ta liczba jest równa liczne przesłanych bajtów tylko wtedy, gdy \fIsize\fP wynosi 1. Jeśli wystąpi błąd lub osiągnięty zostanie koniec pliku, zwracana jest zmniejszona liczba elementów (lub zero). .P Wskaźnik pozycji pliku jest przesuwany o liczbę pomyślnie odczytanych lub zapisanych bajtów. .P Funkcja \fBfread\fP() nie rozróżnia pomiędzy końcem pliku a błędem, należy w tym celu wywołać funkcję \fBfeof\fP(3) oraz \fBferror\fP(3). .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 \fBfread\fP(), \fBfwrite\fP() T} Bezpieczeństwo wątkowe MT\-bezpieczne .TE .SH STANDARDY C11, POSIX.1\-2008. .SH HISTORIA POSIX.1\-2001, C89. .SH PRZYKŁADY Program poniżej demonstruje użycie \fBfread\fP(), przez analizę pliku wykonywalnego ELF /bin/sh w trybie binarnym i wypisanie jego magii i klasy: .P .in +4n .EX $\fB ./a.out\fP; Magia ELF: 0x7f454c46 Klasa: 0x02 .EE .in .SS "Kod źródłowy programu" .\" SRC BEGIN (fread.c) \& .EX #include #include \& #define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) \& int main(void) { FILE *fp; size_t ret; unsigned char buffer[4]; \& fp = fopen("/bin/sh", "rb"); if (!fp) { perror("fopen"); return EXIT_FAILURE; } \& ret = fread(buffer, sizeof(*buffer), ARRAY_SIZE(buffer), fp); if (ret != ARRAY_SIZE(buffer)) { fprintf(stderr, "fread() zawiodło: %zu\[rs]n", ret); exit(EXIT_FAILURE); } \& printf("Magia ELF: %#04x%02x%02x%02x\[rs]n", buffer[0], buffer[1], buffer[2], buffer[3]); \& ret = fread(buffer, 1, 1, fp); if (ret != 1) { fprintf(stderr, "fread() zawiodło: %zu\[rs]n", ret); exit(EXIT_FAILURE); } \& printf("Klasa: %#04x\[rs]n", buffer[0]); \& fclose(fp); \& exit(EXIT_SUCCESS); } .EE .\" SRC END .SH "ZOBACZ TAKŻE" \fBread\fP(2), \fBwrite\fP(2), \fBfeof\fP(3), \fBferror\fP(3), \fBunlocked_stdio\fP(3) .PP .SH TŁUMACZENIE Tłumaczenie niniejszej strony podręcznika: Adam Byrtek , 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 .