因此,我正在从事一个项目,但未能将所有内容放在一起进行这项工作。我们需要读取二进制文件的头并将其存储在指定的指针处。
我正在使用的功能:
int read_header (FILE *file, elf_hdr_t *hdr);
我了解如何将信息传递给函数,但我不了解如何读入指定的指针。我整天都在尝试查找信息,但无法真正找到我的出发点...感谢您提供的任何指导。
到目前为止,我的代码:
int read_header (FILE *file, elf_hdr_t *hdr)
{
int read;
read = fread(hdr, 1, sizeof(hdr), file);
fclose(file);
}
我想知道我是否在做我在这里尝试的事情,基本上是想一次读取一个字节到指定的指针。
答案 0 :(得分:1)
请重新阅读fread()
的MAN页
这两个参数:1, sizeof(hdr),
表示要读取sizeof(hdr)
个字节,而不要读取1个字节
答案 1 :(得分:1)
由于hdr
是指针,所以sizeof(hdr)
只是指针的大小。您希望sizeof(*hdr)
或sizeof(elf_hdr_t)
获得指针指向...的elf标头结构的大小。