为什么 ifconfig 的 FLAGS 值与每个接口的 ifa_flags 值不同,我如何获得 ifconfigs 值?
Why are ifconfig's FLAGS values different from each interface's ifa_flags value and how can I get ifconfigs values?
运行 以下代码打印出每个接口的 ifa_flags 值。 运行 ifconfig
紧随其后将为每个接口显示不同的 FLAGS 值。为什么是这样?如何在不解析 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("Flags: %x", flags);
运行 以下代码打印出每个接口的 ifa_flags 值。 运行 ifconfig
紧随其后将为每个接口显示不同的 FLAGS 值。为什么是这样?如何在不解析 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("Flags: %x", flags);