STRFMON(3) | FreeBSD Library Functions Manual | STRFMON(3) |
名称
strfmon — 貨幣値を文字列に変換するライブラリ
Standard C Library (libc, -lc)書式
#include < monetary.h> ssize_t
strfmon( char * restrict s, size_t maxsize, const char * restrict format, ...);
ssize_t
strfmon_l( char * restrict s, size_t maxsize, locale_t loc, const char * restrict format, ...);
解説
strfmon() 関数は、 format によって指される文字列によって制御されるように s によって指された配列に文字を置きます。 maxsize 以上のバイトは、配列に置かれません。strfmon_l() 関数は、 strfmon() と同じこと行いますが、現在のロケールを使用するのではなく明示的なロケールを試みます。
書式 (フォーマット) 文字列は、0 以上の指示で構成されます: 普通の文字 ( % でない) は、出力ストリームに変更せずにコピーされます。そして、変換指定子は、それぞれ 0 以上のその後の引数を取って来ます。それぞれの変換指定子は、 % 文字によって導入されます。 % の後に、次の順序で現れます:
- 次の 0 以上のフラグ:
- = f
- ‘ =’文字は、数値を満たす文字として使用される別の文字 f が続きます。
- ^
- 現在のロケールのデフォルトにかかわらずグループ分け文字を使用しません。
- +
- 正の符号をそれらの前に置くことによって正の値を表して、負の符号をそれらの前に置くことによって負の値を表します。これは、デフォルトです。
- (
- 括弧中の負の値を囲みます。
- !
- 出力で通貨記号を含めません。
- -
- 結果を左詰めにします。フィールドの幅が指定されるときのみ有効です。
- 10 進数で指定するオプションの最小フィールドの幅。デフォルトでは、最小の幅は、ありません。
- ‘ #’符号は、基数文字の後に予想される最大の桁数を指定する 10 進数が続きます。
- ‘ .’文字は、基数文字の後の桁数を指定する 10 進数が続きます。
- 次は、変換指定子のひとつです:
- i
- double 引数は、国際的な金額 (通貨の量) としてフォーマットされます。
- n
- double 引数は、国の金額 (通貨の量) としてフォーマットされます。
- %
-
‘
%
’文字が書き込まれます。
戻り値
終端の ヌル バイトも含めて結果のバイトの総数が maxsize より大きくなければ、 strfmon() は、終端の ヌル バイトを含ますに、 s によって指される配列に置かれたバイト数を返します。そうでなければ、-1 が返され、配列の内容が不定となり、 errno は、エラーを示す値に設定されます。strfmon_l() 関数は、 strfmon() と同じ値を返します。
エラー
strfmon() 関数は、次の場合に失敗します:- [ E2BIG]
- バッファ中の空間の不足のために変換は、止まりました。
- [ EINVAL]
- 書式 (フォーマット) の文字列は、無効です。
- [ ENOMEM]
- 一時的なバッファのために十分なメモリがありません。
関連項目
localeconv(3)規格
strfmon() 関数は、 IEEE Std 1003.1-2001 (“POSIX.1”) に適合しています。 strfmon_l() 関数は、 IEEE Std 1003.1-2008 (“POSIX.1”) に適合しています。作者
strfmon() 関数は、 <phantom@FreeBSD.org>によって実装されました。このマニュアルページは、規格のテキストに基づいて
<asmodai@FreeBSD.org>によって書かれました。バグ
strfmon() 関数は、 format 引数でマルチバイト文字を正しく扱いません。June 25, 2012 | FreeBSD |