为什么strerror不返回const限定指针?

man*_*ama 1 c string standards

我只是略读C99标准,寻找我现在不记得的东西,当我注意到从strerror函数返回的指针(第7.12.6.2节)不是const限定的,即使标准说:

strerror函数返回一个指向字符串的指针,该字符串的内容是
特定于语言环境的.指向的数组不应被程序修改,
但可能会被后续的strerror函数调用覆盖.

是否有一个明显的原因,这个函数返回一个可修改的字符串,而不是像:

char const * const strerror(int errnum);  
Run Code Online (Sandbox Code Playgroud)

或者至少

char const * strerror(int errnum);
Run Code Online (Sandbox Code Playgroud)

谢谢.

APr*_*mer 5

与字符串文字的类型相同:它在C89中已经是这样,描述了const在语言引入之前可以追溯到的实践.更改它会使当前有效程序无效.