的setlocale返回值
问题描述:
调用该函数的setlocale返回值
setlocale(LC_MESSAGES , NULL)
返回“”(空字符串)不为空或任何语言环境。
为什么我得到这个返回值?
是因为这个功能没有在平台上实现吗?
答
输入到setlocale
时,空字符串""
表示环境的默认语言环境,该语言环境可能与"C"
表示的最小C语言环境不同。这可能是setlocale
已被调用空字符串,这是平台的方式来表明。但是,人们希望或者甚至期望返回的字符串更具信息性,例如"en_US.UTF8"
。
也许环境中的信息不健全或不被支持,这是系统可以做的最好的。从空的字符串作为输入的声明调用setlocale
的返回值应该已经被检查过,因为那时的失败将返回一个空指针。