我正在尝试通过一个.dat文件来读取特定的HEX签名00 02 00,当它找到需要从签名开头复制744字节到缓冲区的签名时才能使用C.
我尝试了各种方法,包括读入缓冲区和使用(strtol / strtok / fscanf),而且我的选项用完了。
以下是dat文件的示例,这是00 02 00在ASCII中的样子.☻。
AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB AB 00 00 00 00 00 00 00 00 00 00 00
任何帮助或建议都会受到高度关注。
答案 0 :(得分:0)
有点不清楚文件的内容是否真的是二进制,或二进制数据的十六进制表示。两者都是可能的," .dat"非常一般。
无论如何,我会将整个文件加载到内存中,然后:
答案 1 :(得分:0)
好的,让我再试一次。
给出1028字节缓冲区的示例,您将从更长的字节流中搜索3字节模式“00 02 00”。那么,我该怎么处理呢?
使用它来实现循环缓冲区:How do you implement a circular buffer in C?
当数据运行不足时重新填充缓冲区,例如剩下2个字节用于搜索3字节模式。坚持下去,直到完成。小心所有边界情况,但不要太难。