0

调用后是否需要检查错误uname(2)

根据手册页:

成功时,返回零。出错时,返回 -1,并适当设置 errno。

错误标题下,

EFAULT buf 无效。

是列出的唯一错误。

因此,如果给定一个有效的缓冲区,我可以假设它uname永远不会失败吗?struct utsname

4

1 回答 1

0

不。

仅仅因为EFAULT它是唯一errno列出的,并不意味着uname只要您传递一个有效的缓冲区就永远不会失败。它可能因任何其他原因而失败。即,如果uname的返回码是-1,那么无论 的值如何,它都会失败errno

errno仅当函数/系统调用指示失败时才有意义;它本身并不定义库函数/系统调用的成功/失败。

于 2014-12-28T23:01:55.537 回答