我在哪里可以找到sys_errlist的内容?

时间:2011-12-13 18:39:38

标签: c unix

sys_errlist由errno索引并包含相应的错误消息。我在哪里可以看到此列表的内容?

5 个答案:

答案 0 :(得分:5)

可能在<errno.h>以某种方式包含的某些系统头文件中。如果您想打印其完整内容,可以使用小程序轻松完成:

#include <errno.h>
#include <stdio.h>

int main()
{
    for(int i=0; i<sys_nerr; i++)
        printf("sys_errlist[%d] = \"%s\"\n", i, sys_errlist[i]);
    return 0;
}

sys_nerr定义为sys_errlist

中的条目数

但请记住,根据我的联机帮助页,perrorstrerror应该首选,因为

  

新的错误值可能尚未添加到sys_errlist[]

答案 1 :(得分:4)

已弃用,您应使用 strerror

答案 2 :(得分:1)

作为

man sys_errlist 

告诉我:

  • sys_errlist是包含消息的数组
  • sys_nerr包含sys_errlist中的邮件数量,因此您可以访问从0sys_nerr-1
  • 的邮件
  • sys_errlist 已弃用,请改为使用strerror()strerror_r()

答案 3 :(得分:1)

标题中的实际错误定义位于两个文件/usr/include/asm-generic/errno-base.h和/usr/include/asm-generic/errno.h

答案 4 :(得分:0)

正如人们已经指出的那样,sys_errlist已过时。最终在errlist.c中定义的该数组的内容中,请看一下woboq提供的以下链接:

sys_errlist.h

errlist.c