的setlocale返回值

问题描述:

调用该函数的setlocale返回值

setlocale(LC_MESSAGES , NULL) 

返回“”(空字符串)不为空或任何语言环境。

为什么我得到这个返回值?

是因为这个功能没有在平台上实现吗?

输入到setlocale时,空字符串""表示环境的默认语言环境,该语言环境可能与"C"表示的最小C语言环境不同。这可能是setlocale已被调用空字符串,这是平台的方式来表明。但是,人们希望或者甚至期望返回的字符串更具信息性,例如"en_US.UTF8"

也许环境中的信息不健全或不被支持,这是系统可以做的最好的。从空的字符串作为输入的声明调用setlocale的返回值应该已经被检查过,因为那时的失败将返回一个空指针。