2010-06-23 3 views
4

Вызов функцииSetlocale возвращаемого значения

setlocale(LC_MESSAGES , NULL) 

возвращает «» (пустая строка) не Null или любой локали.

Почему я получаю это возвращаемое значение?

Это потому, что эта функция не реализована на платформе?

ответ

0

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

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

Смежные вопросы