.\" -*- coding: UTF-8 -*-
'\" t
.\" Copyright (c) 1990, 1991 The Regents of the University of California.
.\" and Copyright (c) 2020 Arkadiusz Drabczyk <arkadiusz@drabczyk.org>
.\" All rights reserved.
.\"
.\" This code is derived from software contributed to Berkeley by
.\" Chris Torek and the American National Standards Committee X3,
.\" on Information Processing Systems.
.\"
.\" SPDX-License-Identifier: BSD-4-Clause-UC
.\"
.\"     @(#)fread.3	6.6 (Berkeley) 6/29/91
.\"
.\" Converted for Linux, Mon Nov 29 15:37:33 1993, faith@cs.unc.edu
.\" Sun Feb 19 21:26:54 1995 by faith, return values
.\" Modified Thu Apr 20 20:43:53 1995 by Jim Van Zandt <jrv@vanzandt.mv.com>
.\" Modified Fri May 17 10:21:51 1996 by Martin Schulze <joey@infodrom.north.de>
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH fread 3 "15 czerwca 2024 r." "Linux man\-pages 6.9.1" 
.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(void \fP\fIptr\fP\fB[restrict .\fP\fIsize\fP\fB * .\fP\fInmemb\fP\fB],\fP
\fB             size_t \fP\fIsize\fP\fB, size_t \fP\fInmemb\fP\fB,\fP
\fB             FILE *restrict \fP\fIstream\fP\fB);\fP
\fBsize_t fwrite(const void \fP\fIptr\fP\fB[restrict .\fP\fIsize\fP\fB * .\fP\fInmemb\fP\fB],\fP
\fB             size_t \fP\fIsize\fP\fB, size_t \fP\fInmemb\fP\fB,\fP
\fB             FILE *restrict \fP\fIstream\fP\fB);\fP
.fi
.SH OPIS
Funkcja \fBfread\fP() odczytuje \fInmemb\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 \fInmemb\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 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 <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 .
