#include <locale.h> char *setlocale(int category, const char *locale);
Если locale не равно NULL, то текущяя локаль программы изменяется в соответствии с аргументами. Аргумент category определяет, какая часть текущей локали программы подлежит изменению.
Аргумент locale является указателем на строку символов, содержащую установки, требуемые category. Эта строка является либо широко известной константой "C" (или "da_DK") (см. ниже), либо строкой, возвращаемой вызовом setlocale.
Если locale равна , то каждая часть локали подлежит изменению в соответствии с переменными окружения. Все детали зависят от реализации. В случае с glibc сначала (независимо от category) проверяется переменная окружения LC_ALL, затем переменная окружения с таким же названием, что и категория (LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME), и в конце проверяется переменная окружения LANG. Используется первая существующая переменная окружения. Если ее значение не является правильным для локали, то локаль не изменяется, а setlocale возвращает NULL.
Локали C и POSIX являются совместимыми с другими локалями; код части LC_CTYPE соответствует 7-битному коду набора символов ASCII.
Название локали обычно имеет форму language[_territory][.codeset][@modifier], где language является кодом языка в соответствии ISO 639, territory является кодом страны, согласно ISO 3166, а codeset является набором символов или видом кодировки, как, например, ISO-8859-1 или UTF-8. Для вывода списка всех поддерживаемых локалей, попробуйте "locale -a". См. locale(1).
Если значение locale равно NULL, то запрашиваются параметры текущей локали, но при этом она не изменяется.
При запуске программы локаль C устанавливается по умолчанию. Программа может быть сделана совместимой со всеми типами локалей вызовом setlocale(LC_ALL, ) после инициализации программы, при использовании значений, возвращенных от вызова localeconv() для локалезависимой информации, при использовании многобайтовых функций и функций для работы с широкими символами для обработки текстов, если MB_CUR_MAX > 1; а также при использовании strcoll(), wcscoll() или strxfrm(), wcsxfrm() для сравнения строк.
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |