Wenn ich das richtig verstanden habe, dann ist die Datei "test.dat" dazu da den zu implementierenden Cache zu testen. Man läd die Datei und macht dann die komplexen Dateioperationen.
Code: Alles auswählen
char ch = 0;
if (!file_open("test.dat")) {
printf("Datei konnte nicht geoeffnet werden!\n");
return 1;
}
for (i=0;i<1035;i++) {
file_read_byte(&ch, i);
printf("%c", ch);
}
Wenn ich nun eine neue Datei "test2.dat" mit 1035 Byte anlege mit 1024 Byte Zahlen (wie in "test.dat") und danach Buchstaben, dann wird alles ohne Probleme ausgegeben.
Ich hoffe mein Problem ist klar geworden.
Außerdem müsste im gegeben Codegerüst in der Funktion main
Code: Alles auswählen
if (i * 2 < FILE_SIZE - FILE_XOR_BLOCK) {
cache_hits += cache_read_byte(&a, i + FILE_XOR_BLOCK);
cache_hits += cache_read_byte(&c, i % FILE_XOR_BLOCK);
a ^= c;
cache_hits += cache_write_byte(&a, i + FILE_XOR_BLOCK);
}
Grüße