Linux программирование в примерах
Linux программирование в примерах читать книгу онлайн
В книге рассмотрены вопросы, связанные с программированием под Linux: файловый ввод/вывод, метаданные файлов, основы управления памятью, процессы и сигналы, пользователи и группы, вопросы интернационализации и локализации, сортировка, поиск и многие другие. Много внимания уделено средствам отладки, доступным под GNU Linux. Все темы иллюстрируются примерами кода, взятого из V7 UNIX и GNU. Эта книга может быть полезна любому, кто интересуется программированием под Linux.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Эра является определенным временем в истории. Поскольку она имеет отношение к датам и временам, она имеет наибольший смысл в странах, управляемых императорами и династиями. [144]
Спецификации эр POSIX могут определять эры ранее 1 г. н.э. В таких случаях у начальной даты большее абсолютное числовое значение, чем у конечной даты. Например, Александр Великий правил с 336 г. до н.э. по 323 г до н.э.
Значение, возвращенное '
nl_langinfo(ERA)NULL;:Таблица 13.4. Компоненты спецификации эры
| Компонент | Значение |
|---|---|
| Направление | Символы '+-+- |
| Смешение | Ближайший к дате начала эры год |
| Дата начала | Дата начала эры в виде 'гггг/мм/дд'. Это соответственно год, месяц и день. Годы до н.э используют для гггг отрицательные значения |
| Дата конца | Дата завершения эры в том же самом виде. Допустимы два дополнительных вида: -*+* |
| Название эры | Название эры, соответствующее спецификации преобразования %ECstrftime() |
| Формат эры | Формат года в пределах эры, соответствующий спецификации преобразования %EYstrftime() |
Значение
ALT_DIGITS%OCstrftime()nl_langinfo(ALT_DIGITS)Наконец, '
nl_langinfo(CRNCYSTR)-+.- + . 13.3. Динамический перевод сообщений программ
Только что освещенные интерфейсы стандартной библиотеки С решают простые части проблемы локализации. Для денежных, числовых значений, значений времени и даты, также, как для проблем сортировки строк, применяется управление посредством таблиц специфичных для локали данных (таких, как списки названий месяцев и дней).
Однако, большая часть взаимодействия пользователя с текстовой программой осуществляется в виде выводимых сообщений, таких, как приглашения или сообщения об ошибках. Проблема заключается в необходимости избежания множества версий одной и той же программы, которые отличаются лишь содержанием строк сообщений. Решением де-факто в мире GNU является GNU
gettextGNU
gettext13.3.1. Установка текстового домена:
textdomain()Законченное приложение может содержать множество компонентов: отдельные исполняемые файлы, написанные на С или C++ или на языках сценариев, которые также могут получить доступ к возможностям
gettextgawkgawkcoreutilstextdomain()#include <libintl.h> /* GLIBC */char* textdomain(const char *domainname)Каждый компонент должен вызывать эту функцию со строкой, указывающей на текстовый домен, в составе первоначальной инициализации в
main()domainnameNULLNULLЕсли текстовый домен не установлен с помощью
textdomain()messages13.3.2. Перевод сообщений:
gettext()Следующим после установки текстового домена шагом является использование функции
gettext()
