博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
linux下U盘状态检测
阅读量:6808 次
发布时间:2019-06-26

本文共 507 字,大约阅读时间需要 1 分钟。

Linux的文件系统是异步的,也就是说写一个文件不是立刻保存到介质(硬盘,U盘等)中,而是存到缓冲区内,等积累到一定程度再一起保存到介质中。如果没有umount就非法拔出U盘,程序是不知道的,fopen,fwrite等函数都依然返回正确,知道操作系统要把写介质的时候,才会提示I/O错误。可是很多数据都会因为这个不及时的错误报告而丢失。

    事实上,USB驱动程序在U盘插入和拔出时,都对系统配置文件做了修改。
    例如U盘驱动程序会在插入或拔出时往 /proc/scsi/usb-storage-0/0 里面记上 Attached:Yes or No
    通过查看这个文件就不难检测U盘是否插入或拔出了。

    注意:U盘是否插入的状态与是否挂载(mount)无关。

 

当然这也不是唯一的方法检测u盘的状态。根据内核的设置情况,也可能没有/proc/scsi目录,但是/sys目录下面会有usb的目录,插拔u盘,目录会自动创建和消失,如果上面的方法不可行,那么可以通过检测这些目录来判断u盘或者sd卡等存储设备的存在状态,/sys/目录下找到相关的usb或者sd卡的目录,里面有更详细的设备信息,包括设备出厂id,传输速度,容量等。

转载地址:http://gytwl.baihongyu.com/

你可能感兴趣的文章
《网络安全原理与实践》一1.12 复习题
查看>>
《Android游戏编程入门经典》——4.6节问与答
查看>>
TouchVG 支持 CocoaPods 了!
查看>>
如何在 Ubuntu 16.10 的 Unity 8 上运行老式 Xorg 程序
查看>>
《C Primer Plus(第6版)中文版》一2.12 编程练习
查看>>
怎样在 Ubuntu Unity Dash 添加关机、重启选项
查看>>
《数字图像处理与机器视觉——Visual C++与Matlab实现》——0.1 数字图像
查看>>
《JavaScript高效图形编程(修订版)》——导读
查看>>
在 Linux 中使用 SSD(固态驱动器):启用 TRIM
查看>>
开发者的实用 Vim 插件(二)
查看>>
springcloud(四):熔断器Hystrix
查看>>
《Python机器学习——预测分析核心算法》——2.3 对“岩石vs.水雷”数据集属性的可视化展示...
查看>>
机器学习初学者入门实践:怎样轻松创造高精度分类网络
查看>>
Ruby Tip:定义索引操作符
查看>>
优云automation实践技巧:简单4步完成自动化构建与发布
查看>>
【Android 】【Monkey Demons】 针对性的进行稳定性测试
查看>>
基于MongoDB与NodeJS构建物联网系统
查看>>
从云效1.0到2.0的升级,看技术如何驱动企业提效
查看>>
Struts2升级版本至2.5.10,高危漏洞又来了
查看>>
OpenCV 使用 FLANN 库实现特征匹配
查看>>