使用FATFS的f_write函数时,会覆盖掉原始文件内容

使用FATFS的f_write函数时,有别于c语言的fwrite,无论怎么改参数都无法实现数据的续写

解决:只需要在写函数之前查询一下文件的末尾,并把返回的指针赋给地址参数即可

即:

res_sd=f_lseek(&fnew,f_size(&fnew));
f_write(&fnew,buff,64,&fnum);

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
fatfs是一个轻量级的文件系统模块,用于在嵌入式系统中管理文件和存储设备。而f_write函数fatfs库中的一个函数,用于向文件中写入数据。 在使用fatfs的f_write函数,需要先打开一个文件,然后通过调用f_write函数向该文件中写入数据。f_write函数的原型如下: ``` FRESULT f_write ( FIL* fp, // 文件指针 const void* buff, // 数据缓冲区指针 UINT btw, // 要写入的字节数 UINT* bw // 实际写入的字节数 ); ``` 参数说明如下: - fp:文件指针,指向已经打开的文件 - buff:数据缓冲区指针,即要写入文件的数据 - btw:要写入的字节数,即数据的长度 - bw:实际写入的字节数,函数执行后将实际写入的字节数保存到该指针所指的变量中 f_write函数返回一个FRESULT类型的值,表示操作的结果。如果返回值为FR_OK,则表示写入操作成功;否则,表示写入操作失败,具体的错误信息可以通过调用f_strerror函数来获取。 在使用f_write函数,需要注意以下几点: - 写入数据的长度不能超过文件的剩余空间,否则写入操作失败; - 写入文件之前,需要确保文件已经被打开,并且文件指针正确; - 写入文件,需根据具体情况判断是否需要对写入的数据进行分块处理,以保证数据的完整性和性能的效率; 总之,通过fatfs的f_write函数可以方便地向文件中写入数据,是嵌入式系统中管理文件的一个重要功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值