OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 10957|回复: 9

在FATFS文件系统下,如何判断一个文件已经打开了

[复制链接]

3

主题

6

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-1-15
在线时间
0 小时
发表于 2015-1-15 09:31:39 | 显示全部楼层 |阅读模式
5金钱
我的目的是如何在一个文件已经打开的条件下,再去打开该文件的话,是否会返回一个值来标志已经打开

最佳答案

查看完整内容[请看2#楼]

建议楼主到这里看看http://elm-chan.org/fsw/ff/en/rc.html#tf
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2015-1-15 09:31:40 | 显示全部楼层
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-1-15 10:01:51 | 显示全部楼层
FATFS 里  open之后  都要close的

再去打开,是你的代码有逻辑错误

具体能不能判断,去看f_open函数的返回值吧,如果可以返回重复打开错误,就可以判断,如果不能,则否
学无止境
回复

使用道具 举报

3

主题

6

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-1-15
在线时间
0 小时
 楼主| 发表于 2015-1-15 10:43:24 | 显示全部楼层
回复【2楼】jermy_z:
---------------------------------
我的意思是如果文件的当前状态是打开的,如果再去打开该文件,应该怎样处理?
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-1-15 11:14:58 | 显示全部楼层
回复【3楼】kp_liu:
---------------------------------
你非要去做一件FSTFS禁止的事情干嘛?????

法律规定你不许杀人  你非要杀人,你说应该怎么处理???!!!
学无止境
回复

使用道具 举报

3

主题

6

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-1-15
在线时间
0 小时
 楼主| 发表于 2015-1-15 11:22:42 | 显示全部楼层
回复【4楼】jermy_z:
---------------------------------
这有可比性么???!在已经打开一个文件的前提下,如果忘记了,又打开该文件,难道没有这种情况?
回复

使用道具 举报

70

主题

6763

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13129
金钱
13129
注册时间
2012-11-26
在线时间
3814 小时
发表于 2015-1-15 11:23:47 | 显示全部楼层
回复【5楼】kp_liu:
---------------------------------
呵呵  代码写不好  自己逻辑有问题 还有理由了???
学无止境
回复

使用道具 举报

17

主题

342

帖子

0

精华

高级会员

Rank: 4

积分
544
金钱
544
注册时间
2014-4-24
在线时间
20 小时
发表于 2015-1-15 16:02:21 | 显示全部楼层
回复【3楼】kp_liu:
---------------------------------
打开已打开的同一个文件是允许的,返回值跟第一次是相同的。
重复打开的作用就是将文件读写指针复位,即重新指向文件起始的地方,其它的没啥影响。
你要是忘了已打开过一个文件,再次打开当然没问题啦。只不过要注意数据从文件起始的地方重新开始。最后是必须要关闭的。
你在原子哥的fatfs实验用usmart做下测试就知道了。
回复

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-2-3
在线时间
3 小时
发表于 2016-2-3 15:40:41 | 显示全部楼层
Duplicated File Access

FatFs module does not support the read/write collision control of duplicated open to a file. The duplicated open is permitted only when each of open method to a file is read mode. The duplicated open with one or more write mode to a file is always prohibited, and also open file must not be renamed or deleted. A violation of these rules can cause data colluption.
The file lock control can be enabled by _FS_LOCK option. The value of option defines the number of open objects to manage simultaneously. In this case, if any open, rename or remove that violating the file shareing rule that described above is attempted, the file function will rejected with FR_LOCKED. If number of open objects, files and sub-directories, is equal to _FS_LOCK, an extra f_open/f_opendir function will fail with FR_TOO_MANY_OPEN_FILES.
回复

使用道具 举报

0

主题

6

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2016-2-3
在线时间
3 小时
发表于 2016-2-3 15:41:05 | 显示全部楼层
我也遇到这个问题。。。如上
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 07:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表