【问题标题】:IOKit header assert.h gone?IOKit 头文件 assert.h 不见了?
【发布时间】:2010-03-22 18:09:27
【问题描述】:

我想获取我的 mac 以太网卡的硬件地址。在我在 IOKit/assert.h 中看到的所有示例中。我的系统上似乎不存在。 GCC 抛出一个错误,说他不知道类型 IOEthernetAddress。 我的任务需要 assert.h 吗?如果有人能给我一个工作样本,那就太好了。 [编辑] 这是我的代码,认为这将有助于理解问题:

#include <IOKit/assert.h>
#include <IOKit/network/IOEthernetController.h>
#include <IOKit/network/IOEthernetInterface.h>

int main(){
    IOEthernetAddress addr;
    getHardwareAddress(&addr);
    printf("%x", addr);
    return 0;
}

【问题讨论】:

标签: c macos assert iokit


【解决方案1】:

您必须尝试从用户空间执行此操作;如果您正在为内核编写代码,您将不会使用 main()。但是,这些是内核包含文件。从用户空间执行此操作的一种方法是查看 I/O 注册表,并找到您感兴趣的硬件的 IOMACAddress。要开始使用此功能,请查看 I/O Registry Explorer。

另一种方法是使用带有 SIOCSIFLLADDR 的 ioctl,以获取链接级地址。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多