如果我关闭一个文件然后重新打开它,在重新打开它后我不能写入更多的数据,但是如果我保持打开状态,我可以编写尽可能多的行,然后关闭它我写完了。 请看下面的例子。谢谢。当使用FatFs打开文件时覆盖的数据
if (f_mount(&FatFs, "", 1) == FR_OK) {
f_mkdir ("TEST");
count = 0;
while(count < 200){
if(f_open(&fil, "TEST/test.txt", FA_OPEN_ALWAYS | FA_WRITE) != FR_OK){
break;
}
else{
sprintf(array,"This is file entry number: %d\r\n",count);
f_puts(array, &fil);
if(f_close(&fil) != FR_OK){
break;
}
}
count++;
}
f_mount(0, "", 1);
}
这将算到最大值,但它只会写的最后一项是199
谢谢,但我使用的版本没有FA_OPEN_APPEND标志。我能用f_seek()实现同样的功能。感谢您的帮助。 –
@o_tech,对我来说它不包含'FA_OPEN_APPEND'似乎很奇怪,因为这是打开文件的一种常见模式。不过,我很高兴你能够解决这个限制。 – rjp
这些都是它的标志:#定义\t FA_READ \t \t \t \t 0×01 的#define \t FA_WRITE \t \t \t 0×02 的#define \t FA_OPEN_EXISTING \t为0x00 的#define \t FA_CREATE_NEW \t \t 0×04 的#define \t FA_CREATE_ALWAYS \t 0x08的 #定义\t FA_OPEN_ALWAYS \t \t 0x10 #define _FA_MODIFIED \t \t 0x20 #define _FA_DIRTY \t \t \t 0x40我试图使用_FA_MODIFY,但它没有工作 –