Macos 为什么是ifconfig';s标记每个接口不同的值';s ifa_标志值以及如何获取ifconfigs值?

Macos 为什么是ifconfig';s标记每个接口不同的值';s ifa_标志值以及如何获取ifconfigs值?,macos,kernel,network-interface,ifconfig,Macos,Kernel,Network Interface,Ifconfig,运行以下代码将为每个接口打印ifa_标志值。紧接着运行ifconfig将为每个接口显示不同的标志值。为什么会这样?如何在不解析shell命令输出的情况下获取ifconfig的FLAGS值 void printFlags(){ struct ifaddrs *addrs, *nextAddr; getifaddrs(&addrs); nextAddr = addrs; while(nextAddr){ fprintf(stdout, "%s\' FLAGS: %u\n", n

运行以下代码将为每个接口打印ifa_标志值。紧接着运行
ifconfig
将为每个接口显示不同的标志值。为什么会这样?如何在不解析shell命令输出的情况下获取ifconfig的FLAGS值

void printFlags(){
 struct ifaddrs *addrs, *nextAddr;
 getifaddrs(&addrs);
 nextAddr = addrs;
 while(nextAddr){
   fprintf(stdout, "%s\' FLAGS: %u\n", nextAddr->ifa_name, nextAddr->ifa_flags);
   nextAddr = nextAddr->ifa_next;
 }
}

它们不同的原因是ifconfig决定以十六进制格式打印标志。尽管内核以int或short等形式传递该值。。。无论什么查看它的简单方法:
fprint(“标志:%x”,标志)

您能给出一个您看到的值的示例,并且
ifconfig
打印的值吗?