yyl81 发表于 2011-1-18 11:13:36

打开文件失败,可能是文件系统的问题

删除文件a之后,重命名b为a,然后立即打开a文件,经常失败,要等待一会才好

itspy 发表于 2011-1-19 09:32:13

怎么操作的,帖代码吧
我这边加文件操作的命令,串口端输出结果正常:
finsh>>dfs_file_rename("/b.txt","/a.txt")
      0, 0x00000000
finsh>>cat("/a.txt")
你好,RT-Thread
abcdefgh      0, 0x00000000
finsh>>

yyl81 发表于 2011-1-19 16:37:39

我是写了好几个文件,其中一个很大,几十MB
unlink("/a");
dfile_raw_rename("/b","/a");
fd = open("/a",O_RDONLY,0);
有可能失败
要等一会才行

ffxz 发表于 2011-1-19 18:18:31

涉及到多线程访问吗?如果涉及到多线程访问,需要在rtconfig.h中把RT_DFS_ELM_REENTRANT定义打开。

yyl81 发表于 2011-1-20 20:52:33

多线程,我再测试一下看看

yyl81 发表于 2011-1-21 13:04:24

我的是0.30 没有RT_DFS_ELM_REENTRANT
ffconf.h 里有
#define _FS_REENTRANT        0
改成了1

为什么默认不设为1呢, 稳定性,还是性能方面的考虑?

yyl81 发表于 2011-1-21 13:19:24

明白了 和长文件名不兼容?!
页: [1]
查看完整版本: 打开文件失败,可能是文件系统的问题