在Linux系統(tǒng)下檢測U盤是否已連接的方法
Linux的文件系統(tǒng)是異步的,也就是說寫一個(gè)文件不是立刻保存到介質(zhì)(硬盤,U盤等)中,而是存到緩沖區(qū)內(nèi),等積累到一定程度再一起保存到介質(zhì)中。如果沒有umount就非法拔出U盤,程序是不知道的,fopen,fwrite等函數(shù)都依然返回正確,知道操作系統(tǒng)要把寫介質(zhì)的時(shí)候,才會(huì)提示I/O錯(cuò)誤??墒呛芏鄶?shù)據(jù)都會(huì)因?yàn)檫@個(gè)不及時(shí)的錯(cuò)誤報(bào)告而丟失。
事實(shí)上,USB驅(qū)動(dòng)程序在U盤插入和拔出時(shí),都對系統(tǒng)配置文件做了修改。
例如U盤驅(qū)動(dòng)程序會(huì)在插入或拔出時(shí)往 /proc/scsi/usb-storage-0/0 里面記上 Attached:Yes or No
通過查看這個(gè)文件就不難檢測U盤是否插入或拔出了。
注意:U盤是否插入的狀態(tài)與是否掛載(mount)無關(guān)。
【編輯推薦】