Definition | #include <stdio.h> size_t fread(void *zg, size_t elgroesse, size_t anz, FILE *dz);
|
Returnwert | Anzahl der tatsächlich gelesenen Elemente. Diese Anzahl kann kleiner als anz sein, wenn ein Fehler auftritt oder Dateiende erreicht wird. |
Hinweise | Sie müssen dafür sorgen, dass der Bereich, auf den zg zeigt, zum Abspeichern der eingelesenen Datenelemente ausreicht. Um sicherzugehen, dass elgroesse die richtige Anzahl Bytes für ein Datenelement angibt, sollten Sie die Funktion
|
Satz-E/A |
Anzahl der einzulesenden Zeichen: Im Folgenden sei n die Gesamtanzahl der einzulesenden Zeichen, d.h. n = Elementlänge * Elementanzahl Ist n größer als die aktuelle Satzlänge, wird trotzdem nur dieser Satz gelesen.
Bei Textdateien mit der Zugriffsart SAM und variabler Satzlänge, für die zusätzlich eine maximale Satzlänge angegeben ist, gilt: Wenn bei |
Beispiel | Folgendes Programm überträgt zwei Personeneinträge in eine Datei ( #include <stdio.h> int main(void) { FILE *fp; size_t result; static struct p { char name[20]; int a; } person[2] = { {"ANNE", 30}, {"HANS", 60}, }; fp = fopen("link=link", "w+r"); result = fwrite(person, sizeof(struct p), 2, fp); printf("%d Personeneintraege geschrieben\n", result); rewind(fp); result = fread(person, sizeof(struct p), 2, fp); printf("%d Personeneintraege gelesen\n", result); printf("Name1: %s, Alter1: %d\n", person[0].name, person[0].a); printf("Name2: %s, Alter2: %d\n", person[1].name, person[1].a); return 0; } |
Siehe auch
fwrite, feof, ferror, read, fopen, fopen64, fgetc, fgets, fscanf