Namensräume
Varianten
Aktionen

fwrite

Von cppreference.com
< c‎ | io
 
 
Datei-Ein-/Ausgabe
Typen und Objekte
        
Funktionen
Datei-Zugriff
(C95)
Unformatierte Ein-/Ausgabe
(C95)(C95)
(C95)
(C95)(C95)
(C95)
(C95)

Formatierte Eingabe
Direkte Ein-/Ausgabe
fwrite
Formatierte Ausgabe
Dateipositionierung
Fehlerbehandlung
Operationen auf Dateien
 
Definiert in Header <stdio.h>
size_t fwrite( const void* buffer, size_t size, size_t count,
               FILE* stream );
(bis C99)
size_t fwrite( const void* restrict buffer, size_t size, size_t count,
               FILE* restrict stream );
(seit C99)

Schreibt count Objekte aus dem gegebenen Array buffer in den Ausgabestrom stream. Die Objekte werden so geschrieben, als ob jedes Objekt als ein Array von unsigned char neu interpretiert und size mal fputc aufgerufen würde, um diese unsigned chars nacheinander in stream zu schreiben. Der Dateipositionierungszeiger für den Strom wird um die Anzahl der geschriebenen Zeichen erhöht.

Wenn ein Fehler auftritt, ist der resultierende Wert des Dateipositionierungszeigers für den Strom unbestimmt.

Inhalt

[bearbeiten] Parameter

buffer - Zeiger auf das erste Objekt im zu schreibenden Array
size - Größe jedes Objekts
zählt - die Anzahl der zu schreibenden Objekte
stream - Zeiger auf den Ausgabestrom

[bearbeiten] Rückgabewert

Die Anzahl der erfolgreich geschriebenen Objekte, die weniger als count sein kann, wenn ein Fehler auftritt.

Wenn size oder count null ist, gibt fwrite null zurück und führt keine weitere Aktion aus.

[bearbeiten] Beispiel

#include <assert.h>
#include <stdio.h>
#include <stdlib.h>
 
enum { SIZE = 5 };
 
int main(void)
{
    double a[SIZE] = {1, 2, 3, 4, 5};
    FILE* f1 = fopen("file.bin", "wb");
    assert(f1);
    size_t r1 = fwrite(a, sizeof a[0], SIZE, f1);
    printf("wrote %zu elements out of %d requested\n", r1, SIZE);
    fclose(f1);
 
    double b[SIZE];
    FILE* f2 = fopen("file.bin", "rb");
    size_t r2 = fread(b, sizeof b[0], SIZE, f2);
    fclose(f2);
    printf("read back: ");
    for (size_t i = 0; i < r2; ++i)
        printf("%0.2f ", b[i]);
}

Ausgabe

wrote 5 elements out of 5 requested
read back: 1.00 2.00 3.00 4.00 5.00

[bearbeiten] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.21.8.2 Die Funktion fwrite (S. TBD)
  • C17-Standard (ISO/IEC 9899:2018)
  • 7.21.8.2 Die Funktion fwrite (S. TBD)
  • C11-Standard (ISO/IEC 9899:2011)
  • 7.21.8.2 Die Funktion fwrite (S. 335-336)
  • C99-Standard (ISO/IEC 9899:1999)
  • 7.19.8.2 Die Funktion fwrite (S. 301-302)
  • C89/C90-Standard (ISO/IEC 9899:1990)
  • 4.9.8.2 Die Funktion fwrite

[bearbeiten] Siehe auch

gibt formatierte Ausgaben nach stdout, an einen Dateistream oder in einen Puffer aus
(Funktion) [bearbeiten]
schreibt einen Zeichenstring in einen Dateistream
(Funktion) [bearbeiten]
liest aus einer Datei
(Funktion) [bearbeiten]
C++ Dokumentation für fwrite