xujun 发表于 2019-9-2 13:45:57

求助,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);


eric2013 发表于 2019-9-2 14:50:55

fclose返回值是成功的不。

特别注意重定向文件的实现,也就是我们所提供例子里面的Retarget.c文件,这个问题没整好,容易导致没有成功写入

xujun 发表于 2019-9-2 15:01:21

eric2013 发表于 2019-9-2 14:50
fclose返回值是成功的不。

特别注意重定向文件的实现,也就是我们所提供例子里面的Retarget.c文件,这个 ...

fclose是成功的,返回为0 ,重定向文件直接就是用的老大你做的那个。也是比较纠结了这个问题。

eric2013 发表于 2019-9-2 15:04:45

xujun 发表于 2019-9-2 15:01
fclose是成功的,返回为0 ,重定向文件直接就是用的老大你做的那个。也是比较纠结了这个问题。

单独编译下这个文件,然后全编译试试,有时候MDK容易遗漏

ZhuRouDing 发表于 2020-5-14 22:52:12

遇到同样的问题,想问下楼主问题解决了吗?

ZhuRouDing 发表于 2020-5-15 10:15:18

搞定了,就是重定向的问题,谢谢提醒@eric2013。

eric2013 发表于 2020-5-15 12:12:10

ZhuRouDing 发表于 2020-5-15 10:15
搞定了,就是重定向的问题,谢谢提醒@eric2013。
好的,后续还有什么问题,再交流。

641115388 发表于 2020-7-20 13:47:08

楼主你好,我也遇到这个问题,但是我重新编译了那个Retarget.c,还是不行,请问还需要别的操作吗

eric2013 发表于 2020-7-20 15:47:14

641115388 发表于 2020-7-20 13:47
楼主你好,我也遇到这个问题,但是我重新编译了那个Retarget.c,还是不行,请问还需要别的操作吗

MDK的option选项的微库不要选。

641115388 发表于 2020-7-20 16:00:17

eric2013 发表于 2020-7-20 15:47
MDK的option选项的微库不要选。

没有选择            
页: [1]
查看完整版本: 求助,fwrite写入函数返回成功但实际没有写入,这个是什么问题???