Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       fread, fwrite - intrare/ieșire a fluxurilor binare

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #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țăAtributValoare │
       ├─────────────────────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │ fread(), fwrite()                                                       │ Siguranța firelor │ MT-Safe │
       └─────────────────────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       C11, POSIX.1-2008.

ISTORIC

       POSIX.1-2001, C89.

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   făcută   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.9.1                   15 iunie 2024                                         fread(3)