ich wollte im Rahmen eine C-Einführung ein Bespiel für den wahlfreien Zugriff mit fseek schreiben.
Hier der Code:
Code: Alles auswählen
#include <stdio.h>
#define OFFSET_HB_BLOCK 64L
int main()
{
FILE *fp;
char meas_time[8];
fp = fopen("CANape.MDF","r");
fseek(fp,OFFSET_HB_BLOCK,SEEK_SET); //set seek pointer to start of HD-Block
fseek(fp,28,SEEK_CUR); //set seek pointer to start of time data range
fscanf(fp,"%s",meas_time);
printf("Time: %s",meas_time);
return 1;
}
Mein Problem:
Wenn ich das Programm mit einem Debugger durchsteppe dann wird beim Aufruf von fscanf der File-Pointer fp auf NULL gesetzt.
meas_time wird richtig beschrieben. Das alles tut, bloss der fp ist weg und eigentlich will ich mit dem in der Folge weiterarbeiten.
Ich habe das alles jetzt mit fread implementiert, da funktioniert es, verstehe aber immer noch nicht. warum fscanf den File-Pointer modifiziert?!
Hat jemand eine Idee?
Danke!
Gruß
Marcus