一个也是关于文件系统缓存的问题

milson 2006-05-22 08:19:35
系统有SD卡,当写入文件完毕后立刻拔出SD卡,很容易造成文件破坏;不知道有什么好办法。我实际的操作是:拷贝文件到SD卡,拷贝完毕后拔出SD卡,此时SD卡中的文件被破坏。除了sync/umount之外各位还有什么办法解决这个问题?
...全文
275 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
mouse_fox 2006-05-24
  • 打赏
  • 举报
回复
如果是在硬件上的话应该是检测是否有读写片选,而且在驱动中应该有信号量保护的。
应该有接口检测信号量是否释放然后才允许拔出。一个可行的办法是当型号量释放时,关闭usb的电源然后告知用户未断电时不准拔出。
joyself 2006-05-23
  • 打赏
  • 举报
回复
这种情况没办法的.
我们也碰到这种问题, 用户何时拔出SD卡是不确定的,所以不可以做什么操作
zdhzidy 2006-05-23
  • 打赏
  • 举报
回复
Windows不也是一样拔出USB这个设备之前要停用,所以Linux在拔出之前umount一下也是很合理的啊
geopower 2006-05-23
  • 打赏
  • 举报
回复
在文件传输的开始和结束自动加载mount 和 umount命令,写个判断硬件设备是否存在,如果F提示插入设备.
ghtsao 2006-05-23
  • 打赏
  • 举报
回复
你说的这个问题我觉得是现在硬件还不支持的,umount的作用相当于让二者断开必要的联系。这个动作在物理脱离的情况下是怎么都不可能完成的,除非你拨下USB的过程中系统能监测到,在这样一个短暂的时刻完成UMOUNT的操作,本质上,这需要有硬件来支持正在拨除的起始和拨除结束的状态监测,目前的USB只能知道拔除设备结束的事件,而无法判断拔除开始的事件,也就无法在两个事件之间做必要的UMOUNT操作。
milson 2006-05-23
  • 打赏
  • 举报
回复
即使我使用fsync把数据写进SD卡,但是我不可能还要umount吧;这种情况可以设想一下手机中使用SD卡。如果不umount就拔出卡会出错的,那么如何才能在用户拔掉卡之前umount呢?
flinymengw4u 2006-05-22
  • 打赏
  • 举报
回复
写一个后台进程,监控usb端口

4,465

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧