当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 如何检测U盘是否插入或拔出

Unix/Linux
Linux [系统管理命令中文详解][转]
C++
11次编译的结果
LVM2+ReiserFS使用小记(转载)
下面说一下如何扩充,删除,管理LVM
VFS虚拟文件系统
freeswan 文档摘录
重新安装Gcc
发布名一个目录并添加认证
检测程序运行的命令
linux进程调度方法
新手日记(待续)
让拥有AMD处理器的本本在linux下支持 PowerNow!技术
FC3,RHEL4中挂载有中文的U盘,移动硬盘
互斥型信号量和二进制信号量
fcitx输入法快速安装
xmms1.2.10版 + MP3播放 + WMA播放 + 不完善中文显示
qmail+maildrop对单个用户的来信进行过滤
干吗还用 7.2 ?
心情小笔

Unix/Linux 中的 如何检测U盘是否插入或拔出


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-20   浏览: 472 ::
收藏到网摘: n/a

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

事实上,USB驱动程序在U盘插入和拔出时,都对系统配置文件做了修改。

例如U盘驱动程序会在插入或拔出时往 /proc/scsi/usb-storage-0/0 里面记上 Attached:Yes or No

通过查看这个文件就不难检测U盘是否插入或拔出了。

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