gpt4 book ai didi

C elf.h 获取 ELF64_Shdr 的偏移量

转载 作者:行者123 更新时间:2023-11-30 16:55:57 26 4
gpt4 key购买 nike

我正在使用 C 语言的 elf.h,并且我有一个 ELF64_Shdr *sh ,我需要获取其偏移量。我的理解是这样的:

unsigned char offset = sh->sh_offset;
printf("Offset: %x\n",offset);

但是当我知道该值实际上是 6c0 (从 elf 命令行工具获取)时,这会打印“Offset: c0”。奇怪的是,如果我这样做:

printf("Offset: %x\n",sh->sh_offset);

它打印“Offset: 5c0”,这更接近,但仍然不太正确。谁能告诉我我做错了什么?预先感谢您的帮助!

最佳答案

unsigned char offset = sh->sh_offset;

这就是你的问题就在那里。您正在将 Elf64_Off 类型的 64 位实体截断为 8 位。不要这样做!

如果需要保存偏移量,请将其保存在适当类型的变量中:

Elf64_Off offset = sh->sh_offset;

要打印它,请使用 %lx 格式说明符。

关于C elf.h 获取 ELF64_Shdr 的偏移量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40113189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com