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