c - 如果内核支持 IPv6,如何从用户空间进行测试?

标签 c linux sockets tcp userspace

我正在寻找一种简单的方法来测试内核是否在 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/

相关文章:

c - 需要帮助 C 中的 Switch 语句

c++ - 在 yacc 文件中使用 C++ 代码

从无符号字符缓冲区创建图像

java - 异步NIO : Same client sending multiple messages to Server

multithreading - Haskell - 线程时缓慢的套接字连接

c - 在c中读取一个char数组的程序

python - 基于大量此类短语替换大文本文件中的短语的省时方法

linux - Linux内核模块列表中的 "Live"是什么意思?

无法跟踪使用 ptrace 和 seccomp 调用 execve 的子进程的系统调用

python - 如何停止TCP服务器