setlocale () возвращает 'C' при запуске от имени пользователя root - PullRequest
1 голос
/ 26 октября 2011

Для получения языкового стандарта системы я использую следующее:

currentLocale = setlocale(LC_ALL,"");

Это прекрасно работает нормально, я получаю (например) en_GB.UTF-8.

Однако при запуске той же программы, что и root, я получаю C. Как получить локаль системы при запуске от имени пользователя root *

1 Ответ

4 голосов
/ 26 октября 2011

Нет "системного языкового стандарта". Каждый пользователь может установить языковой стандарт самостоятельно, и он может отличаться для каждой программы (например, выполнить языковой стандарт LC_ALL = "en_US"). Возвращаемое значение C означает, что пользователь не установил никакой локали, и локаль по умолчанию активна.

...