Ich mache ein Projekt über Dateisysteme in einem Betriebssystemkurs an der Universität, mein C-Programm sollte ein einfaches Dateisystem in einer menschenlesbaren Datei simulieren, daher sollte die Datei auf Zeilen basieren, eine Zeile wird ein "Sektor" sein. Ich habe gelernt, dass Zeilen die gleiche Länge haben müssen, um überschrieben zu werden, also werde ich sie mit ASCII-Nullen bis zum Ende der Zeile auffüllen und eine bestimmte Anzahl von Zeilen mit ASCII-Nullen frei lassen, die später gefüllt werden können.
Jetzt erstelle ich ein Testprogramm, um zu sehen, ob es funktioniert, wie ich es möchte, aber das tut es nicht. Der kritische Teil meines Codes:
file = fopen("irasproba_tesztfajl.txt", "r+"); //vorher mit 10 Kopien der Zeile geladen, die ich später in umgekehrter Reihenfolge ausgeben werde
/* das sucht die 3. Zeile */
int count = 0; //wie weit sind wir schon?
char c;
while(count != 2) {
if((c = fgetc(file)) == '\n') count++;
}
fflush(file);
fprintf(file, "- . , M N B V C X Y Í U Á É L K J H G F D S A Ú O P O I U Z T R E W Q Ó Ü Ö 9 8 7 6 5 4 3 2 1 0\n");
fflush(file);
fclose(file);
Jetzt passiert nichts, die Datei bleibt unverändert. Was könnte das Problem sein?
Vielen Dank.