Provided by: manpages-ro-dev_4.21.0-2_all 

NUME
fread, fwrite - intrare/ieșire a fluxurilor binare
BIBLIOTECA
Biblioteca C standard (libc, -lc)
REZUMAT
#include <stdio.h>
size_t fread(void ptr[restrict .size * .nmemb],
size_t size, size_t nmemb,
FILE *restrict stream);
size_t fwrite(const void ptr[restrict .size * .nmemb],
size_t size, size_t nmemb,
FILE *restrict stream);
DESCRIERE
Funcția fread() citește nmemb elemente de date, fiecare cu lungimea de size octeți, din fluxul indicat de
stream, stocându-le la locația indicată de ptr.
Funcția fwrite() scrie nmemb elemente de date, fiecare cu o lungime de size octeți, în fluxul indicat de
stream, obținându-le din locația dată de ptr.
Pentru varianta corespondentă fără blocare, a se vedea unlocked_stdio(3).
VALOAREA RETURNATĂ
În caz de succes, fread() și fwrite() returnează numărul de elemente citite sau scrise. Acest număr este
egal cu numărul de octeți transferați numai atunci când size este 1. Dacă apare o eroare sau dacă se
ajunge la sfârșitul fișierului, valoarea returnată este un număr scurt de elemente (sau zero).
Indicatorul de poziție al fișierului pentru flux este avansat cu numărul de octeți citiți sau scriși cu
succes.
fread() nu face distincție între end-of-file (sfârșitul de fișier) și eroare, iar apelanții trebuie să
utilizeze feof(3) și ferror(3) pentru a determina ce a avut loc.
ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
┌─────────────────────────────────────────────────────────────────────────┬───────────────────┬─────────┐
│ Interfață │ Atribut │ Valoare │
├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
│ fread(), fwrite() │ Siguranța firelor │ MT-Safe │
└─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘
STANDARDE
POSIX.1-2001, POSIX.1-2008, C99.
EXEMPLE
Programul de mai jos demonstrează utilizarea fread() analizând executabilul /bin/sh ELF în modul binar și
imprimând numărul magic și clasa acestuia:
$ ./a.out
ELF magic: 0x7f454c46
Class: 0x02
Sursa programului
#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() a eșuat: %zu\n", ret);
exit(EXIT_FAILURE);
}
printf("numărul magic ELF: %#04x%02x%02x%02x\n", buffer[0], buffer[1],
buffer[2], buffer[3]);
ret = fread(buffer, 1, 1, fp);
if (ret != 1) {
fprintf(stderr, "fread() a eșuat: %zu\n", ret);
exit(EXIT_FAILURE);
}
printf("Clasa: %#04x\n", buffer[0]);
fclose(fp);
exit(EXIT_SUCCESS);
}
CONSULTAȚI ȘI
read(2), write(2), feof(3), ferror(3), unlocked_stdio(3)
TRADUCERE
Traducerea în limba română a acestui manual a fost creată de Remus-Gabriel Chelu
<remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o
versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă Nicio
RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-
ro@lists.sourceforge.net.
Pagini de manual de Linux 6.03 29 decembrie 2022 fread(3)