1
我修改的旧代码,它使用了过时sys_errlist
和sys_nerr
被弃用。有人能告诉我它的替代品吗?需要更换过时的阵列中的错误处理
它也将是巨大的,如果有人告诉我们它的功能。
下面是代码:
37 static const char *
38 stringErrorReport(void)
39 {
40 #if (defined(sgi))
41 return strerror(oserror());
42 #elif (defined(_AIX))
43 return strerror(errno);
44 #else
45 if (errno > 0 && errno < sys_nerr)
46 return sys_errlist[errno];
47 else
48 return "Unknown error.\n";
49 #endif
50 }
让我知道如何更换过时sys_nerr
和sys_errlist[ ]
能否请您建议它的更换? – kingsmasher1
特别是如何检查范围'errno> 0 && errno
kingsmasher1
它只是一个字符串数组(errno.h中常量的文本表示)它可能存在也可能不存在。系统头文件可能会或可能不会发布声明。如果你的系统有strerror()这样在它的库中,那么它将拥有这个表保存在某个地方。它可能会或可能不会对你有所帮助。 (但你可以通过从循环内部调用strerror()来查询它,这很愚蠢)显然,如果标识符sys_nerr(表大小)对于你的程序是不可见的,那么你不能对它进行测试。 – wildplasser