openwrt下檢測U盤是否插入

  Linux的文件系統是異步的,也就是說寫一個文件不是馬上保存到介質(硬盤,U盤等)中,而是存到緩衝區內,等積累到必定程度再一塊兒保存到介質中。若是沒有umount就非法拔出U盤,程序是不知道的,fopen,fwrite等函數都依然返回正確,知道操做系統要把寫介質的時候,纔會提示I/O錯誤。但是不少數據都會由於這個不及時的錯誤報告而丟失。linux

    事實上,USB驅動程序在U盤插入和拔出時,都對系統配置文件作了修改。異步

    例如U盤驅動程序會在插入或拔出時往 /proc/scsi/usb-storage-0/0 裏面記上 Attached:Yes or No函數

    經過查看這個文件就不難檢測U盤是否插入或拔出了。spa

    注意:U盤是否插入的狀態與是否掛載(mount)無關。操作系統


上面是針對linux的it

在OpenWrt下, 在目錄下/proc/scsi/usb-storage,配置

會出現0,1這樣的文件。程序

能夠cat 一下 :cat /proc/scsi/usb-storage/0配置文件

若是,沒有U盤插入,則對應的0,1文件是不會存在的。數據

所以能夠以此判斷U盤是否插入。

相關文章
相關標籤/搜索