====== fwrite() ====== ''fwrite()'' ist in der [[c:lib:stdio:start|stdio]] definiert, die in C über stdio.h, bzw in C++ über cstdio eingebunden wird. ===== Funktion ===== ''fwrite()'' schreibt ein Datenarray mit einer gegebenen Anzahl von Elementen von einer gegebenen Größe aus dem Speicher an die aktuelle Position im angegebenen Stream.\\ Anschließend wird die Schreibposition des Streams um die totale Anzahl geschriebener Bytes weitergerückt. ===== Signatur ===== #include size_t fwrite (const void * ptr, size_t size, size_t count, FILE * stream ); **ptr**: Zeiger auf den Speicherbereich, aus dem kopiert werden soll.\\ **size**: Die Größe in Bytes eines einzelnen Blocks.\\ **count**: Anzahl der Blöcke, die geschrieben werden.\\ **stream**: Zeiger auf den Stream, in den geschrieben wird.\\ \\ **Return Value**: Die Anzahl der erfolgreich geschriebenen Blöcke. ===== Fehlerquellen ===== Es kann passieren, dass nicht alle Elemente geschrieben werden können, weil z.B. kein freier Speicher mehr vorhanden ist. Deswegen sollte der Rückgabewert darauf überprüft werden, ob er der Anzahl zu schreibender Elemente (''count'') entspricht. Ist der Rückgabewert ein anderer, deutet dies auf einen Fehler hin. ===== Beispiel ===== #include #include struct data { int nummer; int daten; }; int main (void) { FILE *datei = fopen ("meinedatei.bin","wb"); struct data Daten[3]; unsigned short i = 0; unsigned int ret = 0; for (; i < 3; i++) { Daten[i].nummer = i; Daten[i].daten = i*i; } ret = fwrite (Daten,sizeof(struct data),3,datei); if (ret != 3) printf ("Hupps, ein Fehler...\n"); else printf ("Erfolgreich geschrieben!\n"); fclose (datei); return EXIT_SUCCESS; } ===== Siehe auch ===== [[c:lib:stdio:start|stdio]]: [[c:lib:stdio:fread|fread()]]