如何每8个字节分割一个十六进制文件?

时间:2019-09-04 08:34:26

标签: c raspberry-pi

我有一个项目,我需要将一个十六进制文件拆分为8个字节,然后,我需要通过总线协议将它们发送出去。首先,我需要进行分割。

我已经尝试使用“ tr -d'\ n'

所以我试图用C编写一个程序,在该程序中我创建了一个缓冲区来一次存储8个字节的数据,并将其写出直到EOF。

FILE *hexfile;
char buffer[9];
char *p = &buffer[0];

...

  fputs("Splitting file to 8 bytes\n", stdout);
  while(1){
    fgets(p, sizeof(buffer), hexfile);
    printf("%s", p);
    *p++;
    if(feof(hexfile)){
      fputs("File Reading ended\n", stdout);
      fclose(hexfile); 
      break;
    }

我希望输出是这样的:

12345678
9abcdef1
1fedcba6

(这三行在hexfile中重复)

但是这没有发生,在输出中,hexfile行仍然与输入文件中的行相同,并且在23行之后出现“分段错误”。

在hex文件中,此行重复1000次:123456789abcdef11fedcba6

Here is a print screen about the error I get.

0 个答案:

没有答案