Je travaille avec elf.h en C et j'ai un ELF64_Shdr *sh
dont j'ai besoin pour obtenir le décalage. Je reçois comme ceci:C elf.h obtenir le décalage de ELF64_Shdr
unsigned char offset = sh->sh_offset;
printf("Offset: %x\n",offset);
mais cette impression « Offset: c0 » quand je sais que la valeur soit réellement 6c0 (recueilli de l'outil de ligne de commande elfe). Étrangement, si je fais ceci:
printf("Offset: %x\n",sh->sh_offset);
il imprime « Offset: 5C0 », qui est plus proche, mais pas encore tout à fait raison. Quelqu'un pourrait-il me dire ce que je fais mal? Merci d'avance pour votre aide!
'6c0' ne rentre pas dans un caractère. – tkausl
Dang, je me sens stupide. Merci! Je ne sais toujours pas comment obtenir le bon décalage. – Nick
'sh-> sh_offset' est de type uint64_t mais'% x' à 'printf' attend un' int' (généralement 32 bits). Vous pouvez essayer d'utiliser '% lx' pour' printf' puisque vous passez un int long. Je ne suis pas sûr si cela réglera le problème, dur. –