Linux программирование в примерах

На нашем литературном портале можно бесплатно читать книгу Linux программирование в примерах, Роббинс Арнольд-- . Жанр: Программирование / ОС и Сети. Онлайн библиотека дает возможность прочитать весь текст и даже без регистрации и СМС подтверждения на нашем литературном портале bazaknig.info.
Linux программирование в примерах
Название: Linux программирование в примерах
Дата добавления: 16 январь 2020
Количество просмотров: 943
Читать онлайн

Linux программирование в примерах читать книгу онлайн

Linux программирование в примерах - читать бесплатно онлайн , автор Роббинс Арнольд

В книге рассмотрены вопросы, связанные с программированием под Linux: файловый ввод/вывод, метаданные файлов, основы управления памятью, процессы и сигналы, пользователи и группы, вопросы интернационализации и локализации, сортировка, поиск и многие другие. Много внимания уделено средствам отладки, доступным под GNU Linux. Все темы иллюстрируются примерами кода, взятого из V7 UNIX и GNU. Эта книга может быть полезна любому, кто интересуется программированием под Linux.

 

Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала

Перейти на страницу:

 time_t now;

 struct tm *curtime;

 setlocale(LC_ALL, "");

 time(&now);

 curtime = localtime(&now);

 (void)strftime(buf, sizeof buf,

  "It is now %A, %B %d, %Y, %I:%M %p", curtime);

 printf("%sn", buf);

 printf("ctime() says: %s", ctime(&now));

 exit(0);

}

При запуске программы мы видим, что результаты

strftime()
в самом деле варьируют, тогда как результаты
ctime()
— нет:

$ <b>LC_ALL=en_US ch13-times</b> /* Время в Соединенных Штатах */

It is now Friday, July 11, 2003, 10:35 AM

ctime() says: Fri Jul 11 10:35:55 2003

$ <b>LC_ALL=it_IT ch13-times</b> /* Время в Италии */

It is now venerdi, luglio 11, 2003, 10:36

ctime() says: Fri Jul 11 10:36:00 2003

$ <b>LC_ALL=fr_FR ch13-times</b> /* Время во Франции */

It is now vendredi, juillet 11, 2003, 10:36

ctime() says: Fri Jul 11 10:36:05 2003

Причина отсутствия изменений в том, что

ctime()
asctime()
, на которой основана
ctime()
) является традиционным интерфейсом; он существует для поддержки старого кода,
strftime()
, будучи более новым интерфейсом (первоначально разработанным для C89), свободен использовать локали.

13.2.8. Другие данные локали:

nl_langinfo()

Хотя ранее мы сказали, что API

catgets()
трудно использовать, одна часть этого API обычно полезна:
nl_langinfo()
. Она предоставляет дополнительные связанные с локалью сведения, помимо тех, которые доступны из
struct lconv
:

#include &lt;nl_types.h&gt;

#include &lt;langinfo.h&gt;

char *nl_langinfo(nl_item item);

Заголовочный файл

&lt;nl_types.h&gt;
определяет тип
nl_item
. (Это скорее всего
int
или
enum
.) Параметр
item
является одной из именованных констант, определенных в
&lt;langinfo.h&gt;
. Возвращаемое значение является строкой, которую можно при необходимости использовать либо непосредственно, либо в качестве форматирующей строки для
strftime()
.

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

Таблица 13.3. Значения элементов для

nl_langinfo()

Элемент Категория Значение
ABDAY_1
, …,
ABDAY_7
LC_TIME
Сокращенные названия дней недели. Воскресенье является днем 1
ABMON_1
, …,
ABMON_12
LC_TIME
Сокращенные названия месяцев
ALT_DIGITS
LC_TIME
Альтернативные символы для цифр; см. текст
AM_STR
,
PM_STR
LC_TIME
Обозначения a.m/p.m. для локали.
CODESET
LC_TYPE
Имя кодовой страницы для локали, т.е. использующиеся набор символов и кодировка
CRNCYSTR
LC_MONETARY
Символ местной валюты, описанный ниже
DAY_1
, …,
DAY_7
LC_TIME
Названия дней недели. Воскресенье является днем 1
D_FMT
LC_TIME
Формат даты
D_T_FMT
LC_TIME
Формат даты и времени
ERA_D_FMT
LC_TIME
Формат даты эры.
ERA_D_T_FMT
LC_TIME
Формат даты и времени эры.
ERA_T_FMT
LC_TIME
Формат времени эры.
ERA
LC_TIME
Сегменты описания эры, см. текст.
MON_1
, …,
MON_12
LC_TIME
Названия месяцев.
RADIXCHAR
LC_NUMERIC
Символ системы счисления. Для базы 10 это символ точки в десятичной дроби.
THOUSEP
LC_NUMERIC
Символ-разделитель тысяч
T_FMT_AMPM
LC_TIME
Формат времени в записи a.m/p.m.
T_FMT
LC_TIME
Формат времени.
YESEXPR
,
NOEXPR
LC_MESSAGES
Строка, представляющая положительный и отрицательный ответы.
Перейти на страницу:
Комментариев (0)
название