在偏移处读取文件的 len 个字节并将其写入 FILETIME

问题描述

当只知道应该是红色的元素的大小和偏移量(六进制)时,是否有可能从二进制文件中读取某些内容

例如,如果我想读取一个 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);
}