#c #linux #unix #libc
#c #linux #unix #libc
Вопрос:
Из интерфейса программирования Linux:
Существует два разных способа установки языка с помощью setlocale() . Аргументом locale может быть строка, указывающая один из языков, определенных в системе (т. Е. Имя одного из подкаталогов в /usr/lib/locale), например de_DE или en_US. В качестве альтернативы, язык может быть указан как пустая строка, что означает, что настройки языка должны быть взяты из переменных среды:
setlocale(LC_ALL, «»);
Мы должны выполнить этот вызов, чтобы программа могла знать переменные среды locale. Если вызов опущен, эти переменные среды не будут влиять на программу.
Итак, согласно моему пониманию, если моя программа явно не вызывает setlocale
функцию, моя программа будет использовать значение по умолчанию locale
, которое находится POSIX
в *nix
системах, верно? Я не могу выполнить поиск по указанному документу.
Ответ №1:
Глядя на человека
7.4 Как программы устанавливают язык
Программа на C наследует свои переменные среды locale при запуске. Это происходит автоматически. Однако эти переменные не управляют автоматически языком, используемым библиотечными функциями, поскольку ISO C говорит, что все программы запускаются по умолчанию в стандартном языке ‘C’.Чтобы использовать языки, указанные средой, вы должны вызвать setlocale . Вызовите его следующим образом:
setlocale (LC_ALL, "");
Акцент мой