fread(3) Library Functions Manual fread(3) BEZEICHNUNG fread, fwrite - Ein-/Ausgabe binarer Datenstrome BIBLIOTHEK Standard-C-Bibliothek (libc, -lc) UBERSICHT #include size_t fread(size_t groesse, size_t n; void zeiger[restrict groesse * n], size_t groesse, size_t n, FILE *restrict datenstrom); size_t fwrite(size_t groesse, size_t n; const void zeiger[restrict groesse * n], size_t groesse, size_t n, FILE *restrict datenstrom); BESCHREIBUNG Die Funktion fread() liest n Datenelemente, jeweils groesse Byte lang, vom Datenstrom, auf den datenstrom zeigt, und speichert sie an der Position, die zeiger angibt. Die Funktion fwrite() schreibt n Datenelemente, jeweils groesse Byte lang, in den Datenstrom, auf den datenstrom zeigt. Diese stammen von der Position, die zeiger angibt. Fur nicht sperrende Gegenstucke siehe unlocked_stdio(3). RUCKGABEWERT Bei Erfolg geben fread() und fwrite() die Anzahl der geschriebenen oder gelesenen Elemente zuruck. Diese Zahl ist nur gleich der Anzahl der ubertragenen Byte, wenn groesse 1 ist. Falls ein Fehler auftritt oder das Dateiende erreicht ist, wird eine kleinere Zahl von gelesenen Elementen (oder Null) zuruckgegeben. Der Dateipositionsanzeiger fur den Datenstrom wird um die Anzahl der erfolgreich gelesenen oder geschriebenen Bytes vorwartsbewegt. 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) fur eine Erlauterung der in diesem Abschnitt verwandten Ausdrucke. +--------------------------------+-------------------------+-----------+ |Schnittstelle | Attribut | Wert | +--------------------------------+-------------------------+-----------+ |fread(), fwrite() | Multithread-Fahigkeit | 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 binaren Modus auswertet und dessen Magie und Klasse ausgibt: $ ./a.out; ELF-Magie: 0x7f454c46 Klasse: 0x02 Programmquelltext #include #include #include 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), countof(buffer), fp); if (ret != countof(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) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Martin Schulze , Chris Leick und Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer . Linux man-pages 6.18 10. Februar 2026 fread(3)