IOKit头断言断了?

时间:2010-03-22 18:09:28

标签: c macos assert iokit

我想获取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;
}

1 个答案:

答案 0 :(得分:1)

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

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