双系统告诉你:在Linux系统里,Linux的文件系统是不同步的,换句话说写一个文件非马上存储至介质(硬盘,U盘等等)里,而是存至缓冲区里,待积聚至一定程度再一同存储至介质里。若无umount便非法取下U盘,程序是不晓得的,fopen,fwrite等函数均仍然返回正确,获知操作系统要把写介质之时,方能提示I/O错误。但是许多数据均会由于此不及时的错误报告而丢失。
其实,USB驱动程序在U盘插进与取下时,均对系统配置文件做了更改。比如U盘驱动程序会在插进或者取下时向 /proc/scsi/usb-storage-0/0 里头记上 Attached:Yes or No。通过查看此文件便很容易检测U盘是不是插进或取下了。
可是需留意的是,U盘是不是插进的状态与是不是挂载(mount)没有关系。
希望以上内容对大家有所帮助!

