中级会员
 
- 积分
- 235
- 金钱
- 235
- 注册时间
- 2015-5-4
- 在线时间
- 34 小时
|
发表于 2017-1-6 21:05:54
|
显示全部楼层
本帖最后由 shblh 于 2017-1-6 21:27 编辑
追加后F_close,然后重新打开,还是不可以啊??
res = f_open(f_txt, "New.txt", FA_WRITE|FA_OPEN_ALWAYS);
if (res == FR_OK)
{
printf("start write!\r\n");
do
{
res = f_write(f_txt, NEWbuffer, 100,&bw);
if(res)
{
printf("write error : %d\r\n",res);
break;
}
printf("write ok!\r\n");
}
while (bw < 100);
}
f_close(f_txt);
res = f_open(f_txt, "New.txt", FA_WRITE|FA_OPEN_ALWAYS);
res = f_lseek (f_txt , 50);
res = f_write (f_txt , "50" ,3 , &bw);
res = f_lseek (f_txt , f_txt->fptr + 20);
res = f_write (f_txt , "forward" ,8 , &bw);
res = f_lseek (f_txt , f_txt->fptr - 20);
res = f_write (f_txt , "backward" , 9, &bw);
res = f_lseek (f_txt , f_txt->fsize);
res = f_write (f_txt , "end" ,3 , &bw);
res = f_close ( f_txt );
res = f_open(f_txt, "New.txt", FA_READ|FA_OPEN_ALWAYS);
if(!res)
{
printf("res=%d\r\n",res);
printf("f_txt->fsize=%d\r\n",f_txt->fsize);
br=1;
for(;;)
{
res = f_read(f_txt, buffer, f_size(f_txt), &br);
printf("%s\r\n",buffer);
if (res || br <sizeof(buffer)) break; // error or eof
}
}
f_close(f_txt);
我用JTAG仿真过,buffer里是有追加的数据的,但是打印出来的就没有追加的数据,不知道为什么?
|
|