我正在寻找一种简单的方法来测试内核是否在 C/C++ 的 Linux 上支持 IPv6。 检查 socket() 调用是否失败以及 errno 是否设置为 EINVAL 就足够了吗?
最佳答案
确实,阅读ipv6(7) : 调用 socket(7) -s 例程,特别是 socket(2)和其他人,例如bind(2)等等...,可能会失败(无论如何,您都应该始终处理此类失败)。
你也可以使用 proc(5)例如阅读/proc/net/if_inet6
或/proc/net/sockstat6
(我相信如果不支持ipv6
,它就不会存在)。
关于c - 如果内核支持 IPv6,如何从用户空间进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28097823/