• Jueves 28 de Marzo de 2024, 22:56

Autor Tema:  Error en lseek()  (Leído 1365 veces)

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Error en lseek()
« en: Domingo 19 de Julio de 2009, 02:22 »
0
Tengo esta porción de código:

Código: C
  1. #include <stdio.h>
  2. #define OFFSET_START 0x393158
  3.  
  4. typedef struct
  5. {
  6.     unsigned int module_name_pointer;
  7.     unsigned short int import_flags;
  8.     unsigned short int lib_version;
  9.     unsigned short int number_stubs;
  10.     unsigned short int stub_size; //(in words)
  11.     unsigned int nid_pointer;
  12.     unsigned int jump_pointer;
  13. } tStubEntry;
  14.  
  15. void parse_bin(FILE* file)
  16. {
  17.     tStubEntry stub_entry;
  18.     int cur_offset;
  19.  
  20.     cur_offset = OFFSET_START;
  21.    
  22.     do
  23.     {
  24.         cur_offset = lseek(file, cur_offset, SEEK_SET);
  25.         if(cur_offset < 0)
  26.         {
  27.             printf("Error 1 at parse_bin()n");
  28.             return;
  29.         }
  30.            
  31.         cur_offset += fread(&stub_entry, sizeof(tStubEntry), 1, file);     
  32.     } while (output_stub(file, &stub_entry));
  33. }
  34.  
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?

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Error en lseek()
« Respuesta #1 en: Domingo 19 de Julio de 2009, 15:13 »
0
¿Como abriste el archivo? ¿Cual es el error? Podes usar GetLastError tambien supongo.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

m0skit0

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Error en lseek()
« Respuesta #2 en: Jueves 23 de Julio de 2009, 12:50 »
0
Solucionado Eternal Idol, gracias por la respuesta. Simplemente con cambiar el nombre de la variable de "file" a otra cosa funcionó.