При вводе в setlocale
пустая строка ""
представляет языковой стандарт среды по умолчанию, который может отличаться от минимального языкового стандарта C, представленного "C"
. Может случиться так, что setlocale
был вызван с пустой строкой, и это способ платформы указать это. Однако можно было бы надеяться или даже ожидать, что возвращаемая строка будет более информативной, например "en_US.UTF8"
.
Возможно, информация в окружении является некорректной или не поддерживается, и это лучшее, что может сделать система. Возвращаемое значение от предполагаемого вызова к setlocale
с пустой строкой в качестве входных данных должно было быть проверено, поскольку сбой в этой точке возвратил бы нулевой указатель.