OSDN Git Service

Convert release and draft pages to UTF-8.
[linuxjm/jm.git] / manual / LDP_man-pages / release / man3 / strfmon.3
index 402d424..8a829c1 100644 (file)
 .\" Japanese Version Copyright (c) 2001 NAKANO Takeo all rights reserved.
 .\" Translated Thu Fri 08 2001 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
 .\"
-.\"WORD:       numeric fill character  ¿ôÃÍËä¤áʸ»ú
-.\"WORD:       grouping character      ¥°¥ë¡¼¥×²½Ê¸»ú
-.\"WORD:       left precision          º¸ÀºÅÙ
-.\"WORD:       right precision         º¸ÀºÅÙ
-.\"WORD:       radix (character)       ´ð¿ôÅÀ(ʸ»ú)
-.\"WORD:       conversion character    ÊÑ´¹Ê¸»ú
-.\"WORD:       international currency format   ¹ñºÝÄ̲ߥե©¡¼¥Þ¥Ã¥È
-.\"WORD:       national currency format        ¹ñÆâÄ̲ߥե©¡¼¥Þ¥Ã¥È
+.\"WORD:       numeric fill character  数値埋め文字
+.\"WORD:       grouping character      グループ化文字
+.\"WORD:       left precision          左精度
+.\"WORD:       right precision         左精度
+.\"WORD:       radix (character)       基数点(文字)
+.\"WORD:       conversion character    変換文字
+.\"WORD:       international currency format   国際通貨フォーマット
+.\"WORD:       national currency format        国内通貨フォーマット
 .\"
 .TH STRFMON 3 2000-12-05 "Linux" "Linux Programmer's Manual"
-.SH Ì¾Á°
-strfmon \- ¶â³Û¤ÎÃͤòʸ»úÎó¤ËÊÑ´¹¤¹¤ë
-.SH ½ñ¼°
+.SH 名前
+strfmon \- 金額の値を文字列に変換する
+.SH 書式
 .B #include <monetary.h>
 .sp
 .BI "ssize_t strfmon(char *" s ", size_t " max ", const char *" format ,
 .B "...);"
-.SH ÀâÌÀ
+.SH 説明
 .BR strfmon ()
-´Ø¿ô¤Ï¡¢»ØÄꤵ¤ì¤¿¿ôÎ̤ò
+関数は、指定された数量を
 .I format
-¤Ç»ØÄꤵ¤ì¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤Ë¤·¤¿¤¬¤Ã¤ÆÀ°·Á¤·¡¢
-·ë²Ì¤ò¥µ¥¤¥º
+で指定されたフォーマットにしたがって整形し、
+çµ\90æ\9e\9cã\82\92ã\82µã\82¤ã\82º
 .I max
-¤Îʸ»úÇÛÎó
+の文字配列
 .I s
-¤Ë½ñ¤­¤³¤à¡£
+に書きこむ。
 .PP
 .I format
-Ãæ¤ÎÄ̾ï¤Îʸ»ú¤Ï¡¢ÊÑ´¹¤µ¤ì¤º¤Ë¤½¤Î¤Þ¤Þ
+中の通常の文字は、変換されずにそのまま
 .I s
-¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ÊÑ´¹»ØÄê¤Ï \(aq%\(aq Ê¸»ú¤Ç»Ï¤Þ¤ë¡£
-¤³¤Îľ¸å¤Ë¤Ï¡¢°Ê²¼¤Î¥Õ¥é¥°¤ò 0 ¸Ä°Ê¾å³¤±¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
+にコピーされる。変換指定は \(aq%\(aq 文字で始まる。
+この直後には、以下のフラグを 0 個以上続けることができる。
 .TP
 .BI = f
-1 ¥Ð¥¤¥Èʸ»ú
+1 バイト文字
 .I f
-¤ò¿ôÃÍËä¤áʸ»ú (numeric fill character) ¤Ë¤¹¤ë
-(º¸ÀºÅ٤ȶ¦¤ËÍѤ¤¤ë¡£°Ê²¼¤ò»²¾È)¡£
-»ØÄꤵ¤ì¤Ê¤¤¤È¡¢¥¹¥Ú¡¼¥¹Ê¸»ú¤¬ÍѤ¤¤é¤ì¤ë¡£
+を数値埋め文字 (numeric fill character) にする
+(左精度と共に用いる。以下を参照)。
+指定されないと、スペース文字が用いられる。
 .TP
 .B ^
-¸½ºß¤Î¥í¥±¡¼¥ë¤ÇÄêµÁ¤µ¤ì¤Æ¤¤¤ë¤Ç¤¢¤í¤¦¥°¥ë¡¼¥×²½Ê¸»ú (grouping character)
-¤ò°ìÀڻȤï¤Ê¤¤¡£¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥°¥ë¡¼¥×²½¤ÏÍ­¸ú¤Ë¤Ê¤Ã¤Æ¤¤¤ë¡£
+現在のロケールで定義されているであろうグループ化文字 (grouping character)
+を一切使わない。デフォルトではグループ化は有効になっている。
 .TP
-.BR ( " ¤Þ¤¿¤Ï " +
-( ¥Õ¥é¥°¤Ï¡¢Éé¤Î¿ôÃͤò³ç¸Ì¤Ç³ç¤ë¤³¤È¤ò°ÕÌ£¤¹¤ë¡£
-+ ¥Õ¥é¥°¤ÏÉä¹æ¤ò¥Ç¥Õ¥©¥ë¥È¤Î¤è¤¦¤Ë¼è¤ê°·¤¦¤³¤È¤ò°ÕÌ£¤¹¤ë
-(¤¹¤Ê¤ï¤Á¿ôÃͤÎÁ°¤Ë¥í¥±¡¼¥ë¤ÎÉä¹æ¥Þ¡¼¥¯¤¬ÃÖ¤«¤ì¤ë¡£
-Î㤨¤ÐÀµ¤Ê¤é¤Ê¤Ë¤â¤Ê¤¯¡¢Éé¤Ê¤é \(aq\-\(aq ¤òÃÖ¤¯¡¢¤Ê¤É)¡£
+.BR ( " または " +
+( フラグは、負の数値を括弧で括ることを意味する。
++ フラグは符号をデフォルトのように取り扱うことを意味する
+(すなわち数値の前にロケールの符号マークが置かれる。
+例えば正ならなにもなく、負なら \(aq\-\(aq を置く、など)。
 .TP
 .B !
-Ä̲ߥ·¥ó¥Ü¥ë¤ò¾Êά¤¹¤ë¡£
+通貨シンボルを省略する。
 .TP
 .B \-
-¤¹¤Ù¤Æ¤Î¥Õ¥£¡¼¥ë¥É¤òº¸µÍ¤á¤Ë¤¹¤ë¡£¥Ç¥Õ¥©¥ë¥È¤Ï±¦µÍ¤á¡£
+すべてのフィールドを左詰めにする。デフォルトは右詰め。
 .LP
-¼¡¤Î°ÌÃ֤ˤϡ¢¥Õ¥£¡¼¥ë¥É¤ÎÉý¤ò»ØÄê¤Ç¤­¤ë¡£
-10 ¿Ê¤Î¿ôÃÍʸ»úÎó¤Ç¡¢¥Õ¥£¡¼¥ë¥É¤ÎºÇ¾®Éý¤ò¥Ð¥¤¥Èñ°Ì¤Ç»ØÄꤹ¤ë¡£
-¥Ç¥Õ¥©¥ë¥È¤Ï 0¡£
-·ë²Ì¤¬¤³¤ÎÉý¤è¤ê¤â¶¹¤¯¤Ê¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢
-ÉÔ­ʬ¤¬¥¹¥Ú¡¼¥¹¤ÇËä¤á¤é¤ì¤ë
-(º¸µÍ¤á¥Õ¥é¥°¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤±¤ì¤Ðº¸Â¦¤¬Ëä¤á¤é¤ì¤ë)¡£
+次の位置には、フィールドの幅を指定できる。
+10 進の数値文字列で、フィールドの最小幅をバイト単位で指定する。
+デフォルトは 0。
+結果がこの幅よりも狭くなった場合には、
+不足分がスペースで埋められる
+(左詰めフラグが指定されていなければ左側が埋められる)。
 .LP
-¼¡¤Î°ÌÃ֤ˤϡ¢"#" ¤Ë 10 ¿Ê¿ôÃÍʸ»úÎó¤ò³¤±¤¿·Á¼°¤Ç¡¢
-º¸ÀºÅÙ (left precision) ¤ò»ØÄê¤Ç¤­¤ë¡£
-Ä̲ߤδð¿ôÅÀ (radix) ¤è¤êº¸Â¦¤Î¿ôÃͤηå¿ô¤¬¤³¤Î»ØÄê¤è¤ê¾®¤µ¤¤¾ì¹ç¤Ï¡¢
-¿ôÃÍËä¤áʸ»ú¤Çº¸Â¦¤¬Ëä¤á¤é¤ì¤ë¡£
-¤³¤Î¥Õ¥£¡¼¥ë¥ÉÉý¤Î»ØÄê¤Ç¤Ï¡¢¥°¥ë¡¼¥×²½Ê¸»ú¤Ï¥«¥¦¥ó¥È¤µ¤ì¤Ê¤¤¡£
+次の位置には、"#" に 10 進数値文字列を続けた形式で、
+左精度 (left precision) を指定できる。
+通貨の基数点 (radix) より左側の数値の桁数がこの指定より小さい場合は、
+数値埋め文字で左側が埋められる。
+このフィールド幅の指定では、グループ化文字はカウントされない。
 .LP
-¼¡¤Î°ÌÃ֤ˤϡ¢"." ¤Ë 10 ¿Ê¿ôÃÍʸ»úÎó¤ò³¤±¤¿·Á¼°¤Ç¡¢
-±¦ÀºÅÙ (right precision) ¤ò»ØÄê¤Ç¤­¤ë¡£
-À°·Á¤µ¤ì¤ë¿ôÃͤϡ¢À°·ÁÁ°¤Ë¤³¤Î·å¿ô¤Ë´Ý¤á¤é¤ì¤ë¡£
-¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥«¥ì¥ó¥È¥í¥±¡¼¥ë¤Î
+次の位置には、"." に 10 進数値文字列を続けた形式で、
+右精度 (right precision) を指定できる。
+整形される数値は、整形前にこの桁数に丸められる。
+デフォルトではカレントロケールの
 .I frac_digits
-¤È
+と
 .I int_frac_digits
-¤Î»ØÄê¤òÍѤ¤¤ë¡£
-±¦ÀºÅÙ¤¬ 0 ¤Î¾ì¹ç¤Ï¡¢´ð¿ôÅÀʸ»ú (radix character) ¤Ï°õ»ú¤µ¤ì¤Ê¤¤
-(¤³¤³¤Ç¤Î´ð¿ôÅÀʸ»ú¤Ï
+の指定を用いる。
+右精度が 0 の場合は、基数点文字 (radix character) は印字されない
+(ここでの基数点文字は
 .B LC_MONETARY
-¤ÇÄêµÁ¤µ¤ì¤Æ¤ª¤ê¡¢
+で定義されており、
 .B LC_NUMERIC
-¤Î»ØÄê¤È¤Ï°Û¤Ê¤Ã¤Æ¤¤¤Æ¤â¤è¤¤)¡£
+の指定とは異なっていてもよい)。
 .LP
-ºÇ¸å¤Ë¡¢ÊÑ´¹»ØÄê¤ÏÊÑ´¹Ê¸»ú (conversion character)
-¤Ç½ªÎ»¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-ÊÑ´¹Ê¸»ú¤Ë¤Ï°Ê²¼¤Î 3 ¤Ä¤¬¤¢¤ë¡£
+最後に、変換指定は変換文字 (conversion character)
+で終了しなければならない。
+変換文字には以下の 3 つがある。
 .TP
 .B %
-(¤³¤Î¾ì¹ç¤Ï»ØÄêÁ´ÂΤ¬ "%%" ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£)
-·ë²Ì¤Îʸ»úÎó¤Ë \(aq%\(aq Ê¸»ú¤ò½ñ¤­¤³¤à¡£
+(この場合は指定全体が "%%" でなければならない。)
+結果の文字列に \(aq%\(aq 文字を書きこむ。
 .TP
 .B i
 .I double
-·¿¤Î°ú¤­¿ô¤Ò¤È¤Ä¤¬¡¢
-¥í¥±¡¼¥ë¤Î¹ñºÝÄ̲ߥե©¡¼¥Þ¥Ã¥È (international currency format)
-¤òÍѤ¤¤ÆÊÑ´¹¤µ¤ì¤ë¡£
+型の引き数ひとつが、
+ロケールの国際通貨フォーマット (international currency format)
+を用いて変換される。
 .TP
 .B n
 .I double
-·¿¤Î°ú¤­¿ô¤Ò¤È¤Ä¤¬¡¢
-¥í¥±¡¼¥ë¤Î¹ñÆâÄ̲ߥե©¡¼¥Þ¥Ã¥È (national currency format)
-¤òÍѤ¤¤ÆÊÑ´¹¤µ¤ì¤ë¡£
-.SH ÊÖ¤êÃÍ
+型の引き数ひとつが、
+ロケールの国内通貨フォーマット (national currency format)
+を用いて変換される。
+.SH 返り値
 .BR strfmon ()
-´Ø¿ô¤Ï¡¢·ë²Ì¤Îʸ»úÎ󤬽ªÃ¼¤Î NULL ¥Ð¥¤¥È¤ò´Þ¤á¤ÆÇÛÎó
+関数は、結果の文字列が終端の NULL バイトを含めて配列
 .I s
-¤Ë¼ý¤Þ¤Ã¤¿¾ì¹ç¤Ë¤Ï¡¢
+に収まった場合には、
 .I s
-¤Ë½ñ¤­¤³¤Þ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹¡£NULL ¥Ð¥¤¥È¤Ïʸ»ú¿ô¤ËÆþ¤é¤Ê¤¤¡£
-¤½¤ì°Ê³°¤Î¾ì¹ç¤Ë¤Ï¡¢
+に書きこまれた文字数を返す。NULL バイトは文字数に入らない。
+それ以外の場合には、
 .I errno
-¤Ë
+に
 .B E2BIG
-¤òÀßÄꤷ¤Æ \-1 ¤òÊÖ¤¹¡£
-¤³¤Î¾ì¹ç¤ÎÇÛÎó¤ÎÆâÍƤÏ̤ÄêµÁ¤Ç¤¢¤ë¡£
-.SH ½àµò
-POSIX.1-2001 ¤Ë¤Ï¤Ê¤¤¡£
-¾¤Î¤¤¤¯¤Ä¤«¤Î¥·¥¹¥Æ¥à¤Ë¸ºß¤¹¤ë¡£
-.SH Îã
+を設定して \-1 を返す。
+この場合の配列の内容は未定義である。
+.SH 準拠
+POSIX.1-2001 にはない。
+他のいくつかのシステムに存在する。
+.SH 
 .in +4n
 .nf
 
@@ -152,22 +152,22 @@ strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]",
 
 .fi
 .in
-¤Î¤è¤¦¤Ê´Ø¿ô¥³¡¼¥ë¤Î½ÐÎϤϡ¢¥ª¥é¥ó¥À¤Î¥í¥±¡¼¥ë¤Ç¤Ï°Ê²¼¤Î¤è¤¦¤Ê½ÐÎϤˤʤ롣
+のような関数コールの出力は、オランダのロケールでは以下のような出力になる。
 .in +4n
 
 [ fl **1234,57] [ NLG  **1 234,57]
 
 .in
-(fl ¤Ï "florijnen" ¤Î°Õ¡£NLG ¤Ï Netherlands Guilder¡£)
-¥°¥ë¡¼¥×²½Ê¸»ú¤òÍѤ¤¤ë¤ÈÈó¾ï¤Ë½¹¤¯¤Ê¤ë¡£
-Ʊ»þ¤Ë´Ö°ã¤¤¤Ê¤¯º®Íð¤Î¸¶°ø¤Ë¤â¤Ê¤Ã¤Æ¤·¤Þ¤¦¤À¤í¤¦¡£
-¤³¤ì¤Ï¿ôÃͤÎȾʬ°Ê²¼¤ÎÉý¤Ç¤¢¤ë¤Ù¤­¤À¤¬¡¢
-¿ôÃͤÈƱ¤¸¤À¤±¤ÎÉý¤ò¼è¤Ã¤Æ¤·¤Þ¤¦¤«¤é¤Ç¤¢¤ë¡£
-¤Ò¤É¤¤¤³¤È¤Ë¡¢ "fl" ¤ÎÁ°¸å¤Ë¤Ï¥¹¥Ú¡¼¥¹¤¬Æþ¤Ã¤Æ¤·¤Þ¤¤¡¢
-¤Þ¤¿ "NLG" ¤ÎÁ°¤Ë¤Ï 1 ¤Ä¡¢¸å¤Ë¤Ï 2 ¤Ä¤Î¥¹¥Ú¡¼¥¹¤¬ÃÖ¤«¤ì¤Æ¤¤¤ë¡£
-¤³¤ì¤Ï¥í¥±¡¼¥ë¥Õ¥¡¥¤¥ë¤Î¥Ð¥°¤Ç¤¢¤í¤¦¡£
-¥¤¥¿¥ê¥¢¡¦¥ª¡¼¥¹¥È¥é¥ê¥¢¡¦¥¹¥¤¥¹¡¦¥Ý¥ë¥È¥¬¥ë¤Î
-³Æ¥í¥±¡¼¥ë¤Ç¤Î·ë²Ì¤Ï°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£
+(fl は "florijnen" の意。NLG は Netherlands Guilder。)
+グループ化文字を用いると非常に醜くなる。
+同時に間違いなく混乱の原因にもなってしまうだろう。
+これは数値の半分以下の幅であるべきだが、
+数値と同じだけの幅を取ってしまうからである。
+ひどいことに、 "fl" の前後にはスペースが入ってしまい、
+また "NLG" の前には 1 つ、後には 2 つのスペースが置かれている。
+これはロケールファイルのバグであろう。
+イタリア・オーストラリア・スイス・ポルトガルの
+各ロケールでの結果は以下のようになる。
 .in +4n
 
 [ L. **1235] [ ITL  **1.235]
@@ -178,7 +178,7 @@ strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]",
 .br
 [ **1234$57Esc] [ **1.234$57PTE ]
 .in
-.SH ´ØÏ¢¹àÌÜ
+.SH 関連項目
 .BR setlocale (3),
 .BR sprintf (3),
 .BR locale (7)