Tengo esta porción de código:
#include <stdio.h>
#define OFFSET_START 0x393158
typedef struct
{
unsigned int module_name_pointer;
unsigned short int import_flags;
unsigned short int lib_version;
unsigned short int number_stubs;
unsigned short int stub_size; //(in words)
unsigned int nid_pointer;
unsigned int jump_pointer;
} tStubEntry;
void parse_bin(FILE* file)
{
tStubEntry stub_entry;
int cur_offset;
cur_offset = OFFSET_START;
do
{
cur_offset = lseek(file, cur_offset, SEEK_SET);
if(cur_offset < 0)
{
printf("Error 1 at parse_bin()n"); return;
}
cur_offset
+= fread(&stub_entry
, sizeof(tStubEntry
), 1, file
); } while (output_stub(file, &stub_entry));
}
pero me da error nada más entrar en el bucle while, sale por cur_offset = -1, es decir, que
lseek() ha fallado. El fichero que estoy manejando es de 28 MiB, así que ese desplazamiento existe de sobra... ¿Alguien sabe a qué puede deberse esto?