是否有可能在Linux中检测到USB扩展卡的存在?

时间:2012-01-20 17:42:52

标签: c++ linux usb sd-card

我想编写一些可以检测USB扩展卡或SD卡读卡器的C ++程序,而不必插入任何东西。这可能吗?在Linux?

2 个答案:

答案 0 :(得分:3)

如果您知道确切的供应商ID和/或产品ID,则可以搜索它,如下所示:

for (bus = busses; bus; bus = bus->next)
for (dev = bus->devices; dev; dev = dev->next)
  if ((dev->descriptor.idVendor == vendor) && (dev->descriptor.idProduct == product))
    return dev;

libusb tutorial

答案 1 :(得分:0)

是的,您可以通过简单的dmesg获取idVendor和idProduct。然后,由知识渊博的人提出上面所示的搜索条件。如果你想深入挖掘,如果你有linux,那么你可以探索usb.h中的<kernel_source>/drivers/usb/core。 有一个结构:struct usb_device{}。 如果您更热衷于探索,那么您应该查看driver.chub.c以查看announce_device()之类的方法,这些方法会在dmesg之后打印USB设备详细信息。探索它好! :)