Ich habe ein Linux-System mit mehreren USB-Sticks angeschlossen, als/dev/sda1,/dev/sdb1, etc. Ich muss eine dieser aus meinem Programm auswerfen - so etwas wie EjectDrive("/dev/sdb1");
Ich muss dann möglicherweise programmgesteuert Setzen Sie das Laufwerk erneut ein.Wie entferne ich ein Flash-Laufwerk programmatisch anhand seines Knotennamens?
Ich weiß, ich kann dies von der Befehlszeile aus tun, wenn ich den USB-Bus, Port und Gerätenummer kenne. z.B. echo '2-1.3' > /sys/bus/usb/drivers/usb/unbind
und dann echo '2-1.3' > /sys/bus/usb/drivers/usb/bind
Ich bin mir nicht sicher, wie das von C++ zu tun, und 100% sicher sein, dass ich den richtigen Bus, Port und Gerät für das angegebene Laufwerk verwenden.
Dies ist eine eingebettete Plattform mit BusyBox v1.22.1, also ist udev nicht für mich verfügbar, und lsusb gibt minimale Informationen zurück.
Es gibt Slways das 'eject' Programm .. –
So ist es. Aber ich muss (muss) es auch programmatisch neu einfügen, so dass nur die Hälfte meines Problems gelöst wird. Ich werde die Frage bearbeiten, um das klarzustellen. Vielen Dank. – IndefatibableGoodForm
Haben Sie Man-Seiten erkundet? Was ist der Befehl, um die USB-Laufwerke im System aufzulisten? (Verwenden Sie Google) Also, woher kennen Sie den Bus, Port, Gerät? Wie findest du heraus, wenn du es nicht weißt? (Hinweis - Google "Wie liste ich alle USB-Geräte?) Vielleicht können Sie mehr Forschung ... gibt es andere Ressourcen für diese Fragen, aber keine davon sind C++ –