首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试sd卡上的文件-缓存?

测试sd卡上的文件-缓存?
EN

Stack Overflow用户
提问于 2013-06-28 19:35:49
回答 1查看 354关注 0票数 0

我有一个带有SD读卡器的debian linux盒。当SD卡不存在的时候,我似乎可以做文件IO (一点)。我需要一种方法来确保我正在读取的文件实际上是卡上的文件,而不是缓存中的文件。

详细信息:如果我把一个文件放在SD卡上并读取它:

代码语言:javascript
复制
#!/bin/bash
if [-e "/media/usb3/disk_id"]
   id=`cat /media/usb3/disk_id`
   logger "disk id: $id"
else
   logger "not there"
fi

如果我在磁盘上插入一个带有'disk_id‘文件的磁盘,这是可行的(IE预期的行为)。但如果我移除SD卡它还能继续工作..。或者把另一张没有文件的卡片放进去。

我可以使用blkid -d /dev/null检测SD卡的存在/缺位,但我不知道如何绕过操作系统正在进行的缓存。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2013-06-30 05:49:25

如果您删除一个设备而没有正确地卸载它,您将观察到此行为。你真的无能为力。至少没什么简单的。

您可以尝试通过向块设备写入一些东西(可能创建一个新文件),然后调用fsync来检测块设备是否存在。如果块设备不再存在,fsync将失败。

不过,我不知道如何在bash脚本中这样做。

你应该确保你没有弹出你的SD卡,而不首先卸载他们。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17372353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档