c – 如何创建程序列出Mac中的所有USB设备?
发布时间:2020-12-15 01:55:48 所属栏目:百科 来源:网络整理
导读:我对Mac OS X操作系统的曝光有限,现在我已经开始使用Xcode并正在研究I / O套件。我需要在Xcode的命令行工具下创建一个程序,以列出在Mac系统中连接的所有USB设备。那些有这方面经验的人,请帮助我。如果有人可以提供示例代码,那么在我正在寻找起点时,这将
我对Mac OS X操作系统的曝光有限,现在我已经开始使用Xcode并正在研究I / O套件。我需要在Xcode的命令行工具下创建一个程序,以列出在Mac系统中连接的所有USB设备。那些有这方面经验的人,请帮助我。如果有人可以提供示例代码,那么在我正在寻找起点时,这将是非常有用的。
解决方法
您可以根据需要调整
USBPrivateDataSample,示例设置通知程序,列出当前连接的设备,然后等待设备连接/分离。如果你这样做,你将要删除usbVendor和usbProduct匹配的字典,所以所有的USB设备都匹配。
或者,您可以使用 以下是一个简短的示例(我从未运行过): #include <IOKit/IOKitLib.h> #include <IOKit/usb/IOUSBLib.h> int main(int argc,const char *argv[]) { CFMutableDictionaryRef matchingDict; io_iterator_t iter; kern_return_t kr; io_service_t device; /* set up a matching dictionary for the class */ matchingDict = IOServiceMatching(kIOUSBDeviceClassName); if (matchingDict == NULL) { return -1; // fail } /* Now we have a dictionary,get an iterator.*/ kr = IOServiceGetMatchingServices(kIOMasterPortDefault,matchingDict,&iter); if (kr != KERN_SUCCESS) { return -1; } /* iterate */ while ((device = IOIteratorNext(iter))) { /* do something with device,eg. check properties */ /* ... */ /* And free the reference taken before continuing to the next item */ IOObjectRelease(device); } /* Done,release the iterator */ IOObjectRelease(iter); return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |