Provided by: manpages-de-dev_4.26.0-1_all 
      
    
BEZEICHNUNG
       fread, fwrite - Ein-/Ausgabe binärer Datenströme
BIBLIOTHEK
       Standard-C-Bibliothek (libc, -lc)
ÜBERSICHT
       #include <stdio.h>
       size_t fread(void zeiger[restrict .groesse * .nmemb],
                    size_t groesse, size_t nmemb,
                    FILE *restrict datenstrom);
       size_t fwrite(const void ptr[restrict .groesse * .nmemb],
                    size_t groesse, size_t nmemb,
                    FILE *restrict datenstrom);
BESCHREIBUNG
       Die  Funktion  fread()  liest  nmemb  Datenelemente,  jeweils  groesse Byte lang, vom Datenstrom, auf den
       datenstrom zeigt, und speichert sie an der Position, die zeiger angibt.
       Die Funktion fwrite() schreibt nmemb Datenelemente, jeweils groesse Byte lang, in den Datenstrom, auf den
       datenstrom zeigt. Diese stammen von der Position, die zeiger angibt.
       Für nicht sperrende Gegenstücke siehe unlocked_stdio(3).
RÜCKGABEWERT
       Bei Erfolg geben fread() und fwrite() die Anzahl der geschriebenen oder gelesenen Elemente zurück.  Diese
       Zahl  ist nur gleich der Anzahl der übertragenen Byte, wenn groesse 1 ist. Falls ein Fehler auftritt oder
       das Dateiende erreicht ist, wird eine kleinere Zahl von gelesenen Elementen (oder Null) zurückgegeben.
       Der Dateipositionsanzeiger für  den  Datenstrom  wird  um  die  Anzahl  der  erfolgreich  gelesenen  oder
       geschriebenen Bytes vorwärtsbewegt.
       fread()  unterscheidet  nicht  zwischen  Dateiende und Fehler, der Aufrufende muss feof(3) bzw. ferror(3)
       benutzen, um herauszufinden was passiert ist.
ATTRIBUTE
       Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
       ┌───────────────────────────────────────────────────────────────────┬───────────────────────┬───────────┐
       │ Schnittstelle                                                     │ Attribut              │ Wert      │
       ├───────────────────────────────────────────────────────────────────┼───────────────────────┼───────────┤
       │ fread(), fwrite()                                                 │ Multithread-Fähigkeit │ MT-Sicher │
       └───────────────────────────────────────────────────────────────────┴───────────────────────┴───────────┘
STANDARDS
       C11, POSIX.1-2008.
GESCHICHTE
       POSIX.1-2001, C89.
BEISPIELE
       Das nachfolgende Programm stellt die Verwendung von fread() dar, indem  es  ein  /bin/sh-ELF-Programm  im
       binären Modus auswertet und dessen Magie und Klasse ausgibt:
           $ ./a.out
           ELF-Magie: 0x7f454c46
           Klasse: 0x02
   Programmquelltext
       #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() fehlgeschlagen: %zu\n", ret);
               exit(EXIT_FAILURE);
           }
           printf("ELF-Magie: %#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() fehlgeschlagen: %zu\n", ret);
               exit(EXIT_FAILURE);
           }
           printf("Klasse: %#04x\n", buffer[0]);
           fclose(fp);
           exit(EXIT_SUCCESS);
       }
SIEHE AUCH
       read(2), write(2), feof(3), ferror(3), unlocked_stdio(3)
ÜBERSETZUNG
       Die  deutsche  Übersetzung dieser Handbuchseite wurde von Martin Schulze <joey@infodrom.org>, Chris Leick
       <c.leick@vollbio.de> und Helge Kreutzmann <debian@helgefjell.de> erstellt.
       Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder  neuer
       bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
       Wenn  Sie  Fehler  in  der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die
       Mailingliste der Übersetzer.
Linux man-pages 6.9.1                             15. Juni 2024                                         fread(3)