FATFs怎样重复打开文件写内容?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了FATFs怎样重复打开文件写内容?相关的知识,希望对你有一定的参考价值。

在FATFs我已经在SD卡内创建了一个文件“1.txt”,并且在里面写了数据“0123456789”,然后关闭文件退出。现在我想接着在内容(0123456789)后面写“abcdef”,要怎样做?非常感谢回答!

下面是我的一部分代码:

FATFS fs;
FRESULT result;
FIL fsrc;
const uint8_t fat[512] = "0123456789" ;
uint16_t br;

result = f_mount(0, &fs);
result = f_open(&fsrc, "0:1.txt", FA_CREATE_NEW | FA_WRITE);
result = f_write(&fsrc, fat, 512, &br);
f_close(&fsrc);

......
在下面怎样写内容“abcdef”,在0123456789后面,成为0123456789abcdef ?
......
......

return 0;

参考技术A res = f_open(&fsrc,"test.txt",FA_OPEN_ALWAYS | FA_READ | FA_WRITE );//没有这个文件则创建该文件
printf("\r\n");
if(res!=FR_OK)

while(1);

res = f_lseek(&fsrc,25);//读写指针从文件开始处向后偏移24字节
if(res==FR_OK)
printf("读写位置偏移操作成功\r\n");
else
printf("读写位置偏移操作失败\r\n");
printf("\r\n");

i = 0;
res = f_write(&fsrc,send_buffer,100,&i);//向/test1/test.c文件中写入1024字节数据
if(res==FR_OK)
printf("成功写入数据:%dBytes\r\n",i);
else
printf("写入数据失败~~~~(>_<)~~~~ \r\n");
if(i<24)
printf("存储器已满\r\n");
printf("\r\n\n");
f_close(&fsrc); //关闭文件 */
参考技术B res = f_open(&fsrc,"test.txt",FA_OPEN_ALWAYS | FA_READ | FA_WRITE );//没有这个文件则创建该文件
printf("\r\n");
if(res!=FR_OK)

while(1);

res = f_lseek(&fsrc,25);//读写指针从文件开始处向后偏移24字节
if(res==FR_OK)
printf("读写位置偏移操作成功\r\n");
else
printf("读写位置偏移操作失败\r\n");
printf("\r\n");

i = 0;
res = f_write(&fsrc,send_buffer,100,&i);//向/test1/test.c文件中写入1024字节数据
if(res==FR_OK)
printf("成功写入数据:%dBytes\r\n",i);
else
printf("写入数据失败~~~~(>_<)~~~~ \r\n");
if(i<24)
printf("存储器已满\r\n");
printf("\r\n\n");
f_close(&fsrc); //关闭文件 */
参考技术C 打开,编辑,写啊

在用FATFS操作TF卡的时候,我创建文件成功,但是写文件内容和读文件都失败,不知道为啥?

参考技术A tf卡的根目录下的目录数和文件数都是有限制的。
试着先删除几个文件和目录,再写入文件。追问

我的根目录里面就是个TXT文件,然后向里面写东西都不成功。

追答

打开cmd,进入u盘所在目录。
c:\g:
g:\echo fjlsljksl > test.txt
看一下它有什么提示没
然后
g:\type test.txt
写不进入的时候,它应该要有个错误提示的,但愿命令行能行

打开cmd,进入u盘所在目录。
c:\g:
g:\echo fjlsljksl > test.txt
看一下它有什么提示没
然后
g:\type test.txt
写不进入的时候,它应该要有个错误提示的,但愿命令行能行

追问

兄台,可能你理解错了,FATFS是管提供的一个驱动代码,用在嵌入式方面对SD和TF卡的文件操作系统,支持FAT12,FAT16,FAT32。你这的这种是基于PC机上面的WINDOWS读取TF卡吧

以上是关于FATFs怎样重复打开文件写内容?的主要内容,如果未能解决你的问题,请参考以下文章

电脑创建的txt文件用STM32文件系统Fatfs打开,出现FR_DISK_ERR,文件系统自己建的文件没有问题。

怎样用fstream对二进制文件进行内容修改和删除?

USB MSC类存储设备

USB MSC类存储设备

怎样解决打开文件时会重复打开程序。

Go语言写文件几种方式性能对比