Læse en .rar fils header?

Tags:    c rar fil header

Hey,

Jeg har problemer med at læse en .rar fil's header. Det jeg prøver er at få navnet på filen inden i, eller nærmere dens extension, så jeg kan sætte en ekstern variabel.

Ifølge dokumentationen findes filnavnet i 0x200, 0x28 eller 0x20 (0x28 hvis den findes ellers 0x20): https://github.com/siz-/xmplayer/blob/master/mplayer/stream/unrar.h#L24

I unrar.c på linje 255 (https://github.com/siz-/xmplayer/blob/master/mplayer/stream/unrar.c#L255) har jeg tilføjet flg. kode:
Fold kodeboks ind/udC kode 

archived_file er en char* sat i unrar.h (ikke vist på github), og jeg har også prøvet med buf[i + 0x28] (i er 0x14), som den selv gør længere oppe i samme fil.
Der bruges read(), og buf skulle gerne få char*s tilført..

Dernæst prøver jeg at sætte en ekstern variabel her https://github.com/siz-/xmplayer/blob/master/mplayer/stream/stream_rar.c#L128 med følgende kode:

Fold kodeboks ind/udC kode 


Jeg kan ikke se hvor jeg gør det forkert, jeg er ikke sikker på hvordan man får læst filnavnet ud af headeren, umiddelbart ser det ud til at strlen(ext) forbliver 0..

Håber I kan hjælpe.



1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 7 karma
Sorter efter stemmer Sorter efter dato
Til de nysgerrige, så fik jeg det til at virke. Filnavnet findes i: buf+i+0x20, eller i buf+i+0x28 alt efter rarformat. Derudover skal man sætter bufferen's array fra 64 til 128 ellers får man ikke hele navnet med.



t