.\" -*- 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 "20 września 2025 r." "Linux man\-pages 6.16" 
.SH NAZWA
fread, fwrite \- odczytuje/zapisuje strumień binarny
.SH BIBLIOTEKA
Standardowa biblioteka C (\fIlibc\fP,\ \fI\-lc\fP)
.SH SKŁADNIA
.nf
\fB#include <stdio.h>\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 <stdio.h>
#include <stdlib.h>
\&
#define NITEMS(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), NITEMS(buffer), fp);
    if (ret != NITEMS(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 <alpha@irc.pl>,
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 .
