fseek mit variable
-
Hallo,
Ich habe folgendes Problem :
int fseek(FILE *datei, long offset, int origin);
Bei offset muss immer folgendes Format eingehalten werden , um den Dateizeiger z. B. um ... Zeichen nach links zu verschieben :
fseek(file1, -20L, SEEK_CUR);
Wie kann ich aber einen Dateizeiger um den Wert einer Variable nach links verschieben? Beispiel :
int ivar = 10 / int ivar = -10 --> Wie kann ich den Lesezeiger um den Wert dieser Variable nach links verschieben?
-
variable verwenden ( negativer Wert )
-
Verstehe deine Frage nicht, hast dir schon mal die Dokumentation zu fseek() angesehen, ist doch eigentlich ganz einfach.
long x = -20; fseek(file,x,SEEK_CUR);
Hab das jetzt nicht versucht, aber warum sollte es nicht funktionieren ??
Als alternative kann mans auch so machen :
long old; long offset; offset = 20; //um 20 bytes nach links verschieben old = ftell(file); offset = old - offset; fseek(file,offset,SEEK_SET);
Vorher natürlich überprüfen ob offset nicht negativ ist nach der Berechnung.