Linux下检测U盘是否插入

Linux下检测U盘是否插入,第1张

如果没有umount就非法拔出U盘,程序是不知道的,fopen,fwrite等函数都依然返回正确,知道 *** 作系统要把写介质的时候,才会提示I/O错误。可是很多数据都会因为这个不及时的错误报告而丢失。事实上,USB驱动程序在U盘插入和拔出时,都对系统配置文件做了修改。例如U盘驱动程序会在插入或拔出时往 /proc/scsi/usb-storage-0/0 里面记上 Attached:Yes or No通过查看这个文件就不难检测U盘是否插入或拔出了。注意:U盘是否插入的状态与是否挂载(mount)无关

假设我们有两个U盘,

通过下面的方式,可以看到两个U盘传输速度的差距,也可用于检查U盘真伪。

测试会生成 test_write 文件,写测试的数据源 /dev/zero 是一个虚拟的不断产生零的linux设备,而非实际硬件。

读测试会将数据 test_write 读取,读测试的数据流向 /dev/null 是一个虚拟的可以接受任何数据的linux黑洞设备,而非实际硬件。

旧U盘拷贝2G多的文件,10分钟以上,进度条上稳定显示平均才7-9m/s,运行以上测试命令输出如下:

新U盘拷贝2G多的文件,不到1分钟,进度条上稳定显示平均为25m/s左右,运行以上测试命令输出如下:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8927660.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存