如何创建一个程序来列出 Mac 中的所有 USB 设备?

2023-12-23

我对 Mac OS X 操作系统的接触有限,现在我开始使用 Xcode 并正在研究 I/O 套件。我需要在命令行工具下在 Xcode 中创建一个程序,以便列出 Mac 系统中连接的所有 USB 设备。请有过这方面经验的人帮帮我。如果有人可以向我提供示例代码,那么它将很有用,因为我正在寻找起点。


你可以适应USB私有数据样本 http://developer.apple.com/library/mac/samplecode/USBPrivateDataSample/Listings/USBPrivateDataSample_c.html根据您的需要,该示例设置一个通知程序,列出当前连接的设备,然后等待设备连接/分离。如果这样做,您将需要删除usbVendor and usbProduct匹配字典,因此所有 USB 设备都会匹配。

或者,您可以使用IOServiceGetMatchingServices https://developer.apple.com/library/mac/documentation/IOKit/Reference/IOKitLib_header_reference/Reference/reference.html#jumpTo_66使用由创建的字典来获取所有当前匹配服务的迭代器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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建一个程序来列出 Mac 中的所有 USB 设备? 的相关文章

  • 在 C/C++ 中获得正模数的最快方法

    通常在我的内部循环中 我需要以 环绕 方式索引数组 因此 例如 如果数组大小为 100 并且我的代码要求元素 2 则应该给它元素 98 高级语言 例如 Python 可以简单地使用my array index array size 但由于某
  • QCombobox 向下箭头图像

    如何更改Qcombobox向下箭头图像 现在我正在使用这个 QSS 代码 但这不起作用 我无法删除向下箭头边框 QComboBox border 0px QComboBox down arrow border 0px background
  • 在 C# 中按元素相乘数组具有意想不到的性能

    我想找到按元素相乘两个数组的最佳方法 这是更广泛项目的一部分 其中性能而不是唯一的考虑因素 我今天开始用 C Linqpad 编写一些函数 因此它还没有以任何方式进行优化 下面代码的输出如下 Environment ProcessorCou
  • 读取 C# 中的默认应用程序设置

    我的自定义网格控件有许多应用程序设置 在用户范围内 其中大部分是颜色设置 我有一个表单 用户可以在其中自定义这些颜色 并且我想添加一个用于恢复默认颜色设置的按钮 如何读取默认设置 例如 我有一个名为的用户设置CellBackgroundCo
  • 单例模式和 std::unique_ptr

    std unique ptr唯一地控制它指向的对象 因此不使用引用计数 单例确保利用引用计数只能创建一个对象 那么会std unique ptr与单例执行相同 单例确保只有一个实例属于一种类型 A unique ptr确保只有一个智能指针到
  • 在 JSQMessagesViewController 中显示 LocationMediaItem

    我刚刚尝试实施LocationMediaItem in my Xamarin iOS应用程序使用JSQMessagesViewController 一切都很顺利 唯一的问题是UICollectionView应该显示位置的单元格永远停留在加载
  • 从 WebBrowser 控件 C# 获取滚动值

    我试图在 WebBrowser 控件中获取网页的 Y 滚动索引 但无法访问内置滚动条的值 有任何想法吗 对于标准模式下的 IE 使用文档类型 正如你所说 scrollTop是的财产元素 而不是 HtmlDocument htmlDoc th
  • 为什么 set_symmetry_difference 无法与比较器一起使用?

    Example program include
  • C# 构建一个 webservice 方法,它接受 POST 方法,如 HttpWebRequest 方法

    我需要一个接受 POST 方法的 Web 服务 访问我的服务器正在使用 POST 方法 它向我发送了一个 xml 我应该用一些 xml 进行响应 另一方面 当我访问他时 我已经使用 HttpWebRequest 类进行了管理 并且工作正常
  • 给出 5 个参数,但在终端中只得到 3 个参数

    我想将一个文件传递给一个c 程序 如果我在 IDE 中执行此操作 test string string lt test txt return argc 5 但在终端上我刚刚得到argc 3 看来 这是因为 什么是 lt 意思是 我正在使用
  • 如何在标准 WPF ListView 中启用 UI 虚拟化

    我正在使用 NET 4 5 VS2012 并且我有一个 ListView 看起来像这样
  • 如何通过 JsonConvert.DeserializeObject 在动态 JSON 中使用 null 条件运算符

    我正在使用 Newtonsoft 反序列化已知的 JSON 对象并从中检索一些值 如果存在 关键在于对象结构可能会不断变化 因此我使用动态来遍历结构并检索值 由于对象结构不断变化 我使用 null 条件运算符来遍历 JSON 代码看起来像这
  • ASP.NET MailMessage.BodyEncoding 和 MailMessage.SubjectEncoding 默认值

    很简单的问题 但我在 MSDN 上找不到答案 查找 ASP NET 将用于的默认值 MailMessage BodyEncoding and MailMessage SubjectEncoding 如果你不在代码中设置它们 Thanks F
  • C# 中的 strstr() 等效项

    我有两个byte 我想找到第二个的第一次出现byte 在第一个byte 或其中的一个范围 我不想使用字符串来提高效率 翻译第一个byte to a string会效率低下 基本上我相信就是这样strstr 在 C 中做 最好的方法是什么 这
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F
  • 更改 Windows Phone 系统托盘颜色

    有没有办法将 Windows Phone 上的系统托盘颜色从黑色更改为白色 我的应用程序有白色背景 所以我希望系统托盘也是白色的 您可以在页面 XAML 中执行此操作
  • 如何在 DropDownList 中保留空格 - ASP.net MVC Razor 视图

    我在视图中通过以下方式绑定我的模型 问题是我的项目文本是格式化文本 单词之间有空格 如下所示 123 First 234 00 123 AnotherItem 234 00 123 Second 234 00 我想保留此项目文本中的空格 即
  • 矩阵到数组 C#

    这将是转换方阵的最有效方法 例如 1 2 3 4 5 6 7 8 9 into 1 2 3 4 5 6 7 8 9 in c 我在做 int array2D new int 1 2 3 4 5 6 7 8 9 int array1D new
  • 使我的 COM 程序集调用异步

    我刚刚 赢得 了在当前工作中维护用 C 编码的遗留库的特权 这个dll 公开使用 Uniface 构建的大型遗留系统的方法 除了调用 COM 对象之外别无选择 充当此遗留系统与另一个系统的 API 之间的链接 在某些情况下 使用 WinFo

随机推荐

  • 列出 Debian 中所有用户安装的软件包

    在我参加的一次网络安全竞赛中 我获得了一台安装了许多软件包的 Debian 虚拟机 并要求我清理无关或恶意的软件包 过去我用过dpkg l grep searchterm 以及执行此任务的常用包的列表 然而 这是极其低效且耗时的 为了加快我
  • Spring FactoryBean 和作用域一起工作

    我想一起使用 FactoryBeans 和作用域 具体来说 我希望将 FactoryBean 创建和返回的对象放置到指定的 可能是自定义的 范围中 问题在于执行以下操作
  • 如何更改 Winforms 按钮上第二行文本的字体大小和颜色?

    this Controls Add button button Font new Font Arial 8 button Name btn idDanych button Width 100 button Height 100 button
  • 奇怪的文件查找行为

    对于下面的两次交互 我希望两者输出相同的文件 但第二个交互写入文件末尾 唯一的区别是写入后的读取语句 我不明白发生了什么 我缺少什么 预期行为 gt gt gt f open test txt w gt gt gt f write 0123
  • Java API核心类的maven-javadoc-plugin和inheritDoc

    我正在编写自己的 Java 8 Stream 实现 并希望继承原始版本的 Javadocsjava util stream Stream界面 但是我无法让它工作 生成的 Javadoc 仅显示我的文档 但不显示扩展 Stream 接口的文档
  • 正则表达式:在一段文本中查找BB代码

    我正在尝试匹配随机文本中的 url BB 代码标记 示例文本 Lorem ipsum dolor sat amet consectetur adipiscing elit 网址 http www google com url http ww
  • 获取其中包含歌曲的流派名称列表

    我正在使用 CursorLoder 类从 android 的媒体内容提供程序获取流派列表 下面是我的光标查询来获取流派列表 public Loader
  • 将列表从 QSharedMemory 复制到 sip.voidptr 的 Pythonic 方法

    我正在使用 PyQT5 和 QSharedMemory 类 我正在创建一个可以容纳 6 个 1 字节元素的共享内存 为了将这些元素复制到共享内存数组中 我循环遍历 python 列表中的元素 如下所示 f shared mem data k
  • Windows批处理文件:查找目录,如果不存在,则创建,然后将文件移动到该目录

    我正在尝试创建一个批处理文件或其他脚本 以将一个文件夹的内容转移到另一个目录中包含其名称的文件夹中 例如 ShowName Episode Title mkv 应移至 movies showname 如果 movies showname 不
  • Powerpoint VBA 撤消

    我有 VBA 代码 可以处理 PowerPoint 文件中的许多幻灯片 部分代码临时调整幻灯片大小 以便我可以以不同的纵横比导出图像 我无法再次调整它们的大小 因为 PowerPoint 永远不会将它们的内容完全恢复到调整大小之前的样子 所
  • PHP:preg_match - “分隔符不能是字母数字或反斜杠”[重复]

    这个问题在这里已经有答案了 有谁知道这个正则表达式有什么问题吗 它在 RegexPal 和 RegExr 等网站上运行良好 但在 PHP 中它给我这个警告并且没有结果 Warning preg match function preg mat
  • 使用 constexpr-if 时出错:在 'constexpr' 之前预期有 '('

    我正在尝试使用 if constexpr 来检查某些内容 但遇到类似错误 constexpr 之前应有 前面没有 if 的 else 到目前为止我检查我的代码没有任何问题 我的编译标志是 g std c 17 main cpp includ
  • mac os x 下进程使用的内存

    给定PID 如何获取进程当前使用的内存 具体来说 我正在寻找 进程使用的私有物理内存 RAM 进程使用的交换空间 但我对映射文件和共享内存不感兴趣 简而言之 我想确定通过终止 PID 将释放多少内存 RAM 和交换 这有用吗 您可以使用ps
  • Django 中的 2 个表单、1 个视图、2 个 SQL 表

    我正在努力了解如何将两个 django 表单中的数据提交到两个单独的数据库表中相同的观点 我只想要一个提交按钮 尽管this https stackoverflow com questions 1395807 proper way to h
  • 一个按钮是否可以有 2 种不同的背景颜色(以及 css 按钮)

    我想要实现的就是这样的事情 你好 hi 位于两种颜色的中间 我让它适用于一种颜色和下面的另一种颜色 但希望颜色在文本中间分开 如果没有人能想出使用 css 的解决方案 我将使用按钮图像 尽量避免使用图像 编辑 当然CSS结果必须跨浏览器 即
  • 最后一个分叉的孩子不会死

    我的主进程分叉了两次 从而创建了两个子进程 这两个孩子是这样相互沟通的 ls more 现在的问题是 第二个孩子永远不会死 这是为什么 管道中的最后一个孩子什么时候真正死亡 删除一个wait 调用显示了预期结果ls more但给出了一些进一
  • 如何使用 SevenZipSharp 创建压缩的 SFX 文件?

    我将了解如何使用 SevenZipSharp 库创建 SFX 首先 我需要说我找不到任何属性来设置压缩级别 等等 当我尝试制作文件的 SFX 时 出现以下错误 Object reference not set to an instance
  • WinForms 中的 WPF 控件 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我是 NET 世界的新手 对 winform 的经验很少 我想知道是否可以将WPF与Winforms混
  • JavaScript 中 FileReader#readEntries 可以读取的目录最大文件数

    我正在创建一个 Chrome 应用程序 我必须读取目录的文件并且我正在使用目录入口API https developer mozilla org en US docs Web API DirectoryEntry and 目录读取器API
  • 如何创建一个程序来列出 Mac 中的所有 USB 设备?

    我对 Mac OS X 操作系统的接触有限 现在我开始使用 Xcode 并正在研究 I O 套件 我需要在命令行工具下在 Xcode 中创建一个程序 以便列出 Mac 系统中连接的所有 USB 设备 请有过这方面经验的人帮帮我 如果有人可以