0
我有一個運行Linux Angstrom的嵌入式設備。我需要檢測一個USB驅動器。所以當插入USB驅動器時,我需要自動將數據從USB複製到嵌入式設備的內部存儲器。C程序檢測Linux中的USB驅動器
檢測USB,我使用下面的代碼:
DIR* dir = opendir("/media/sda1/");
if (dir)
{
printf("USB detected\n");
//rest of the code
//to copy data from the USB
}
這工作正常,但複製完成後,有時,我刪除了USB,但安裝點(SDA1)的名稱仍然存在。因此,在刪除USB之後,它會再次嘗試複製數據(因爲sda1存在於介質中),然後顯示錯誤,因爲物理上沒有USB連接。如何檢測USB是否連接,以及如果連接,然後在複製後如何正確彈出,最佳方法是什麼?在這裏,我不能使用udisks
,因爲它不適用於我用於此嵌入式設備的linux angstrom。所以只有通用的linux命令才能工作。
任何幫助。由於
你得到udev嗎?如果是這樣,你可以用udev規則來做一些事情。 – Joe
可能的解決方法可能是在執行復制傳輸後以編程方式卸載USB,因爲可能未正確檢測到USB的物理拔出。 – JTejedor
@JTejedor我用'umount/media/sda1'正確卸載了它,但有時它仍然存在。這就是爲什麼我正在尋找另一種方法。 –