fwrite
Von de.cppreference.net
| 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 angegebenen Array buffer in den Ausgabestrom stream. Die Objekte werden geschrieben, als ob jedes Objekt als ein Array von unsigned char interpretiert und fputc size mal für jedes Objekt aufgerufen würde, um diese unsigned chars der Reihe nach in stream zu schreiben. Der Dateipositionszeiger für den Strom wird um die Anzahl der geschriebenen Zeichen weitergesetzt.
Tritt ein Fehler auf, ist der resultierende Wert des Dateipositionszeigers für den Strom unbestimmt.
Parameter
| buffer | - | Zeiger auf das erste Objekt im zu schreibenden Array |
| size | - | Größe jedes Objekts |
| count | - | die Anzahl der zu schreibenden Objekte |
| stream | - | Zeiger auf den Ausgabestrom |
Rückgabewert
Die Anzahl der erfolgreich geschriebenen Objekte, die nur dann kleiner als count ist, wenn ein Fehler auftritt.
Wenn size oder count Null ist, gibt fwrite Null zurück und führt keine weitere Aktion aus.
Beispiel
Diesen Code ausführen
#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
Referenzen
- C23-Norm (ISO/IEC 9899:2024):
- 7.21.8.2 Die Funktion fwrite (S.: TBD)
- C17-Norm (ISO/IEC 9899:2018):
- 7.21.8.2 Die Funktion fwrite (S.: TBD)
- C11-Norm (ISO/IEC 9899:2011):
- 7.21.8.2 Die Funktion fwrite (S.: 335-336)
- C99-Norm (ISO/IEC 9899:1999):
- 7.19.8.2 Die Funktion fwrite (S.: 301-302)
- C89/C90-Norm (ISO/IEC 9899:1990):
- 4.9.8.2 Die Funktion fwrite
Siehe auch
(C99)(C11)(C11)(C11)(C11) |
gibt formatierte Ausgabe an stdout, einen Dateistrom oder einen Puffer aus (Funktion) |
| schreibt eine Zeichenkette in einen Dateistrom (Funktion) | |
| liest aus einer Datei (Funktion) | |
C++-Dokumentation für fwrite
| |