c – 如何创建程序列出Mac中的所有USB设备?

c – 如何创建程序列出Mac中的所有USB设备?,第1张

概述我对Mac OS X *** 作系统的曝光有限,现在我已经开始使用Xcode并正在研究I / O套件。我需要在Xcode的命令行工具下创建一个程序,以列出在Mac系统中连接的所有USB设备。那些有这方面经验的人,请帮助我。如果有人可以提供示例代码,那么在我正在寻找起点时,这将是非常有用的。 您可以根据需要调整 USBPrivateDataSample,示例设置通知程序,列出当前连接的设备,然后等待设备连接 我对Mac OS X *** 作系统的曝光有限,现在我已经开始使用Xcode并正在研究I / O套件。我需要在Xcode的命令行工具下创建一个程序,以列出在Mac系统中连接的所有USB设备。那些有这方面经验的人,请帮助我。如果有人可以提供示例代码,那么在我正在寻找起点时,这将是非常有用的。解决方法 您可以根据需要调整 USBPrivateDataSample,示例设置通知程序,列出当前连接的设备,然后等待设备连接/分离。如果你这样做,你将要删除usbvendor和usbProduct匹配的字典,所以所有的USB设备都匹配。

或者,您可以使用IOServiceGetMatchingServices获取所有当前匹配服务的迭代器,使用由IOServiceMatching(kIoUSBDeviceClassname)创建的字典。

以下是一个简短的示例(我从未运行过):

#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;}
总结

以上是内存溢出为你收集整理的c – 如何创建程序列出Mac中的所有USB设备?全部内容,希望文章能够帮你解决c – 如何创建程序列出Mac中的所有USB设备?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1070983.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存