上下文:我想优雅地关闭一个 TCP 连接,我想知道我是否需要担心ENOBUFS
错误,即使它很少见。
在网络上,有两个shutdown()
手册页——一个是内核函数,第二个是 C posix 函数。posix 手册页有一个额外的返回值 - 它表示该函数可能会失败并出现错误 ENOBUFS ( shutdown(2) , shutdown(3p) )。posix 一个是 4 岁,而另一个是 3 个月前修改的。
另一方面,当我通过命令行(man 版本 2.9.4)执行相同操作时,没有 posix,甚至没有 C 库函数页面,只有 3 岁的内核函数页面,未指定ENOBUFS
为错误。
我应该更喜欢哪一个?网页手册页还是来自终端?
如果有一个函数同时包含 2 和 3 的手册页,我该选择哪一个?如果选择取决于,在 的情况下使用shutdown()
什么?(我应该更喜欢最新的手册页吗?)