ИМЯ
strfmon, strfmon_l - преобразует денежное значение в строкуLIBRARY
Standard C library ( libc, -lc)СИНТАКСИС
#include <monetary.h>
ssize_t strfmon(char s[restrict .max], size_t max, const char *restrict format, ...); ssize_t strfmon_l(char s[restrict .max], size_t max, locale_t locale, const char *restrict format, ...);
ОПИСАНИЕ
Функция strfmon() преобразует заданные денежные суммы в соответствии с текущей локалью и указанным форматом format и помещает результат в символьный массив s размера max. Функция strfmon_l() производит то же действие, но используется локаль, заданная в locale. Поведение strfmon_l() не определёно, если значение locale равно специальному объекту локали LC_GLOBAL_LOCALE (смотрите duplocale(3)) или описатель объекта локали не корректен. Ordinary characters in format are copied to s without conversion. Conversion specifiers are introduced by a '%' character. Immediately following it there can be zero or more of the following flags:- =f
- Однобайтовый символ f используется в качестве числового символа-заполнителя (для выравнивания слева, смотрите ниже). Если символ не указан, то используется символ пробела.
- ^
- Не использовать группирующие символы, которые могут быть определены в текущей локали. По умолчанию, разделение на группы разрядов разрешено.
- ( или +
- Флаг ( указывает на то, что отрицательные суммы должны быть заключены в скобки. Флаг + указывает на то, что наличие знака у суммы должно обрабатываться стандартным способом, то есть зависит от локали, например может быть так, что в результате ничего не указывается для положительных сумм и «-» для отрицательных.
- !
- Пропустить текущий символ.
- -
- Выровнять все поля по левому краю. По умолчанию выравнивание по правому краю.
- %
- (In this case, the entire specification must be exactly "%%".) Put a '%' character in the result string.
- i
- Аргумент типа double преобразуется с использованием локального интернационального формата валюты.
- n
- Аргумент типа double преобразуется с использованием локального национального формата валюты.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении функция strfmon() возвращает количество символов, помещённых в массив s, без учёта конечного байта null, предоставляя строку, включающую конечный байт null. Иначе она устанавливает errno в значение E2BIG, возвращает -1, а содержимое массива не определено.АТРИБУТЫ
Описание терминов данного раздела смотрите в attributes(7).Интерфейс | Атрибут | Значение |
strfmon() | Безвредность в нитях | MT-Safe locale |
strfmon_l() | Безвредность в нитях | MT-Safe |
СТАНДАРТЫ
POSIX.1-2001, POSIX.1-2008.ПРИМЕРЫ
Вызовstrfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]", 1234.567, 1234.567);
результат
[€ **1234,57] [EUR **1 234,57]
с локалью nl_NL. С локалями de_DE, de_CH, en_AU и en_GB:
[ **1234,57 €] [ **1.234,57 EUR] [ Fr. **1234.57] [ CHF **1'234.57] [ $**1234.57] [ AUD**1,234.57] [ £**1234.57] [ GBP**1,234.57]
СМ. ТАКЖЕ
duplocale(3), setlocale(3), sprintf(3), locale(7)ПЕРЕВОД
Русский перевод этой страницы руководства был сделан Alexander Golubev <[email protected]>, Azamat Hackimov <[email protected]>, Hotellook, Nikita <[email protected]>, Spiros Georgaras <[email protected]>, Vladislav <[email protected]>, Yuri Kozlov <[email protected]> и Иван Павлов <[email protected]> Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на [email protected]5 февраля 2023 г. | Linux man-pages 6.03 |