在c中打开一个二进制文件



我正试图将一些二进制数据保存在c中的文件中(5个8位的矢量(。这是我为此编写的代码:

FILE* flatencies;
flatencies=fopen("savelatencies.bin", "wb+");
if(flatencies == NULL){
perror("n Error!: ");
}
while(1){
*p_gpio_capture = 0x0 ;
for(i=0;i<5;i++){
fwrite(*(latency+i), 8, 1, flatencies);
}
}
fclose(flatencies);

我正在嵌入式系统中执行这个脚本。但我从串行终端中的perror得到了这样的消息:";错误!::I/O错误";。我不太理解这个错误,也不知道如何解决。如果有人能帮助我,我将不胜感激。

您的代码中存在一些问题:

  1. 即使打开文件失败,您仍在继续写入该文件
if(flatencies == NULL) {
perror("n Error!: ");
// You should return here
}
...
  1. 您似乎没有脱离while循环。这将导致程序永远循环。你应该考虑在某个时候打破它。(事实上,这对我来说似乎没用,所以我不明白你当初为什么写它(

对于错误,您应该打印errno的值,并查看特定于平台的文档以了解它的实际含义。

相关内容

最新更新