我正在尝试学习如何从Mac OS X中的PCI设备获取信息。可用的。

我需要一个C设施,我知道目标C有一个I/O套件框架,但我无法使用它。

我追求的具体信息是非常基本的,只有供应商和设备ID。

有帮助吗?

解决方案

I/O套件 设备信息的系统框架。它不是Objective-C API;相反,Apple使用C ++的受限子集。引用 I/O套件基础知识 文档,

苹果考虑了I/O套件的几种编程语言,并选择了C ++的受限子集。

选择C ++是出于多种原因。 C ++编译器成熟,语言为系统编程提供了支持。此外,已经有一个拥有C ++经验的Macintosh(和BSD)开发人员的大型社区。

受限制的子集不允许C ++的某些功能,包括

  • 例外
  • 多元继承
  • 模板
  • 运行时类型信息(RTTI) - I/O套件使用其自己的运行时分型系统实现

这些功能被删除,因为它们被认为不适合在多线程内核中使用。如果您觉得需要这些功能,则应重新考虑您的设计。您应该能够编写使用I/O套件的任何驱动程序,并进行这些限制。

如果您不能使用C ++,那么一种选择是您的C程序调用 /usr/bin/ioreg 并解析其结果。


编辑: 您可能想看看 从应用程序访问硬件 文档。看起来可以在大多数情况下(如果不是全部)访问I/O注册表,并具有一定的核心基础。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top