Ich komme gerade nicht weiter, das Programm hat heute Nachmittag noch
funktioniert, was genau ich verändert habe, kann ich leider nicht mehr
nachvollziehen.
Das Programm soll einen Parser für 16bit Intel-Hexfiles darstellen.
Im Anhang der komplette Code, hier der betreffende Teil vom Code:
1 | FILE *hexfile;
|
2 | struct stat buf;
|
3 | unsigned char c;
|
4 | stat(argv[1], &buf);
|
5 | int fsize = buf.st_size;
|
6 | ...
|
7 | hexfile = fopen(argv[1], "rb");
|
8 | printf("file '%s' opened\n", argv[1]);
|
9 | printf("test1\n");
|
10 | while(fsize > 0) {
|
11 | printf("test2");
|
12 | c = fgetc(hexfile);
|
13 | ...
|
Die Ausgabe "test2" wird nicht mehr angezeigt, "test1" schon, es kommt
beim Aufrufen immer abwechselnd Speicherzugriffsfehler und
Buszugriffsfehler.
Die Übergabe vom Hexfile-Dateinamen und stat funktioniert, hier mal die
beiden verschiedenen Ausgaben:
1 | filesize 188 bytes
|
2 | file 'hexfile.hex' opened
|
3 | test1
|
4 | Bus-Zugriffsfehler
|
5 |
|
6 | filesize 188 bytes
|
7 | file 'hexfile.hex' opened
|
8 | test1
|
9 | Speicherzugriffsfehler
|
Ich hoffe, ihr könnt mir da weiterhelfen...