这是一个金斯敦数据旅行者终极G3记忆棒。设备在Windows (相同的硬件)上工作正常,但是它没有出现在Ubtuntu16.10内核4.4.0上的lsusb中。
dmesg显示了这个问题:
dmesg | grep -i usb
[63864.126086] usb 2-3.1: new SuperSpeed USB device number 39 using xhci_hcd
[63864.156440] usb 2-3.1: New USB device found, idVendor=0951, idProduct=1697
[63864.156445] usb 2-3.1: New
我正在尝试在c程序中实现一种检测usb是否连接的方法。我注意到,当usb连接时,shell的以下命令将如下所示:
root:~# ls /dev/sdb
/dev/sdb
如果usb连接断开,我会收到
root:~# ls /dev/sdb
ls: /dev/sdb: No such file or directory
因此,我假设检测从c程序连接的usb的最好方法是执行opendir("/dev/sdb"),但是open调用总是失败的。
你知道做这个检测的最好方法是什么吗?
主要目标是在运行时程序中知道udev安装硬盘的位置,以及usb闪存驱动器(如果插入)的位置。谢谢,阿兰