我正在尝试从特定偏移量的文件中读取(简化版本):
typedef unsigned char u8;
FILE *data_fp = fopen("C:\\some_file.dat", "r");
fseek(data_fp, 0x004d0a68, SEEK_SET); // move filepointer to offset
u8 *data = new u8[0x3F0];
fread(data, 0x3F0, 1, data_fp);
delete[] data;
fclose(data_fp);
问题变成了,该数据将不包含 1008 个字节,而是 529 个(似乎是随机的)。当它达到 529 字节时,对 feof(data_fp) 的调用将开始返回 true。
我也尝试过读取较小的块(一次 8 个字节),但它看起来就像它在不存在时遇到了 EOF。
在十六进制编辑器中简单查看显示还有大量字节。