我有一个带 SD 读卡器的 debian linux 盒子。当 SD 卡不存在时,我似乎可以(在一定程度上)进行文件 IO。我需要一种方法来确保我正在读取的文件实际上是卡上的文件,而不是来自缓存的文件。
详细信息:如果我将文件放在 SD 卡上并读取它:
#!/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 卡,它会继续工作......或者放入另一张没有文件的卡。
我可以使用来检测 SD 卡的存在/不存在,blkid -d /dev/null
但我不确定如何绕过操作系统正在执行的缓存。
建议?