C函数strerror返回错误描述字符串,作为here详细信息。字符串示例

没有这样的文件或目录

问题是这些字符串在哪里定义?我浏览了我的头文件,没有看到任何东西。

最佳答案

它们是在C库中的某个位置定义的,传统上是在至少是Unix系统上的,名为char*且长度为sys_errlistsys_nerr全局数组中定义的。

因为在strerror标准化之前编写的旧程序可以直接访问此数组,所以即使在现代GNU/Linux和Mac OS X上,它也可以使用,以实现向后兼容(尽管您实际上不应通过perrorstrerror对其进行访问)。

例如,这是Mac OS X 10.8.2 definition of sys_errlist

08-03 23:55