jammy (3) fwrite.3.gz

Provided by: manpages-de-dev_4.13-4_all bug

BEZEICHNUNG

       fread, fwrite - Ein-/Ausgabe binärer Datenströme

ÜBERSICHT

       #include <stdio.h>

       size_t fread(void *zeiger, size_t groesse,
                    size_t nmemb, FILE *datenstrom);

       size_t fwrite(const void *zeiger, size_t groesse,
                     size_t nmemb, FILE *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.

       ┌──────────────────┬───────────────────────┬─────────┐
       │SchnittstelleAttributWert    │
       ├──────────────────┼───────────────────────┼─────────┤
       │fread(), fwrite() │ Multithread-Fähigkeit │ MT-Safe │
       └──────────────────┴───────────────────────┴─────────┘

KONFORM ZU

       POSIX.1-2001, POSIX.1-2008, 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 = fopen("/bin/sh", "rb");
           if (!fp) {
               perror("fopen");
               return EXIT_FAILURE;
           }

           unsigned char buffer[4];

           size_t ret = fread(buffer, ARRAY_SIZE(buffer), sizeof(*buffer), fp);
           if (ret != sizeof(*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)

KOLOPHON

       Diese Seite ist Teil der Veröffentlichung  5.10  des  Projekts  Linux-man-pages.  Eine  Beschreibung  des
       Projekts, Informationen, wie Fehler gemeldet werden können sowie die aktuelle Version dieser Seite finden
       sich unter https://www.kernel.org/doc/man-pages/.

Ü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
       ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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 ⟨debian-l10n-german@lists.debian.org⟩.