求助,fwrite写入函数返回成功但实际没有写入,这个是什么问题???
在rtx的一个任务内,调用fwrite写入数据到csv文件内,函数返回是成功了,但把SD卡拿下来在电脑上看,文件创建是成功了,但没有写入数据,请问这个是什么问题????fprintf也是如此,用ferror检查也没有错误,但就是写不进去,fout = fopen ("S0:\\test\\test1.csv", "a+");
if (fout != NULL)
{
/* 依次写5行数据 */
fprintf (fout, "%02d-%02d-%02d\r\n", time_get_t.tm_hour, time_get_t.tm_min, time_get_t.tm_sec);
/* 使用函数ferror检测是否发生过错误 */
if (ferror(fout) != NULL)
{
}
else
{
if(led_flag)
{
LEDC_PIN_ON();
}
else
{
LEDC_PIN_OFF();
}
}
/* 将所有数据都读出来,使用fgets函数的好处就是可以一行一行的读取,因为此函数遇到'\n'换行符就会停止读取 */
while (fgets((char *)cache_buf, sizeof(cache_buf), fout) != NULL)
{
// printf("%s", Readbuf);
}
/* 关闭文件 */
if(fclose(fout))
{
while(1);
}
}
led_flag = !led_flag;
os_dly_wait(500);
fclose返回值是成功的不。
特别注意重定向文件的实现,也就是我们所提供例子里面的Retarget.c文件,这个问题没整好,容易导致没有成功写入 eric2013 发表于 2019-9-2 14:50
fclose返回值是成功的不。
特别注意重定向文件的实现,也就是我们所提供例子里面的Retarget.c文件,这个 ...
fclose是成功的,返回为0 ,重定向文件直接就是用的老大你做的那个。也是比较纠结了这个问题。 xujun 发表于 2019-9-2 15:01
fclose是成功的,返回为0 ,重定向文件直接就是用的老大你做的那个。也是比较纠结了这个问题。
单独编译下这个文件,然后全编译试试,有时候MDK容易遗漏 遇到同样的问题,想问下楼主问题解决了吗? 搞定了,就是重定向的问题,谢谢提醒@eric2013。 ZhuRouDing 发表于 2020-5-15 10:15
搞定了,就是重定向的问题,谢谢提醒@eric2013。
好的,后续还有什么问题,再交流。 楼主你好,我也遇到这个问题,但是我重新编译了那个Retarget.c,还是不行,请问还需要别的操作吗 641115388 发表于 2020-7-20 13:47
楼主你好,我也遇到这个问题,但是我重新编译了那个Retarget.c,还是不行,请问还需要别的操作吗
MDK的option选项的微库不要选。 eric2013 发表于 2020-7-20 15:47
MDK的option选项的微库不要选。
没有选择
页:
[1]