问题描述
当只知道应该是红色的元素的大小和偏移量(六进制)时,是否有可能从二进制文件中读取某些内容?
例如,如果我想读取一个 8 字节的 FILETIME 变量,偏移量为 0x001C,我该如何处理它是 C 还是 C++?
我试过了
fseek(pFile,0x001C,SEEK_SET);
FILETIME* temp =(FILETIME*) malloc(sizeof(FILETIME));
fscanf(pFile,"%d",*temp);
但它不能正常工作,我不知道为什么。
谢谢
解决方法
您可以使用 fseek 设置偏移量,然后使用 fread 读取 len 个字节:
#include <stdio.h>
#include <stdlib.h>
int main(void) {
FILE *file = fopen("read_bytes.c","rb");
size_t offset = 0x001C;
size_t len = 8;
fseek(file,offset,SEEK_SET);
FILETIME* temp = malloc(sizeof(FILETIME));
fread(temp,1,len,file);
}