c - 使用 uname(2) 检查错误?

标签 c linux posix uname

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

根据手册页:

On success, zero is returned. On error, -1 is returned, and errno is set appropriately.

错误标题下,

EFAULT buf is not valid.

是列出的唯一错误。

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

最佳答案

没有。

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

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

关于c - 使用 uname(2) 检查错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27681446/

相关文章:

c - 如何构建共享库但在 Linux 上使用静态 glibc?

linux - nftw(FTW_CHDIR)中的文件描述符泄漏?

linux - 多线程和 SMP Linux

c - 如何在 GCC (x86_64) 中使用内联汇编进行相对跳转/调用

c - 使用 PrintWindow 渲染 chrome

c - 错误的指令 - C 代码中的内联汇编语言

c# - 无法在 Raspberry Pi 上构建 Azure IOT SDK

C++ sleep(0) 循环行为

c - 如何获得 tcp 套接字的当前 RTT 估计?

c - 为什么基数排序不能首先按最高有效位进行桶排序