我发现syscall.go
文件包中了。常量变量syscall.RTNLGRP_IPV4_IFADDR=0x5
。但是RTMGRP_IPV4_IFADDR
在rtnetlink.h
源代码中定义的C语言中的模拟常量具有不同的值,如下所示:
#define RTMGRP_IPV4_IFADDR 0x10
我通过github.com
提交了问题,希望在以后的版本中可以解决。
现在,您可以
0x10在插入的代码中使用
0x5。它将完美运行。
事实证明这根本不是bug。他们没有
RTMGRP_*从
rtnetlink.h源中重新声明常量变量组,并且由于
syscall.go冻结而也不想在功能中添加此变量。但是他们建议使用source中
RTNLGRP_*也声明的方法。但是,这两组常量变量在以下方面有所不同。组代表位值(即:),并声明为用于用户空间后退功能。组代表位位置而不是位值(即:),可以通过以下方式将其转换为位值
rtnetlink.h
RTMGRP_*``RTMGRP_IPV4_IFADDR= 0x10``RTLNGRP_*``RTNLGRP_IPV4_IFADDR=0x5``1 << (RTNLGRP_* - 1)



