OSDN Git Service

(split) LDP: Release pages for LDP v3.39.
[linuxjm/LDP_man-pages.git] / release / man3 / iconv.3
index d6e65e8..b165fb3 100644 (file)
 .\"
 .\" References consulted:
 .\"   GNU glibc-2 source code and manual
-.\"   OpenGroup's Single Unix specification
+.\"   OpenGroup's Single UNIX specification
 .\"    http://www.UNIX-systems.org/online.html
+.\"
 .\" 2000-06-30 correction by Yuichi SATO <sato@complex.eng.hokudai.ac.jp>
 .\" 2000-11-15 aeb, fixed prototype
 .\"
-.\" Japanese Version Copyright (c) 2000 Yuichi SATO
-.\"         all rights reserved.
-.\" Translated 2000-07-11, Yuichi SATO <sato@complex.eng.hokudai.ac.jp>
-.\" Updated 2008-09-14, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v3.09
+.\"*******************************************************************
 .\"
-.\"WORD:       conversion      ÊÑ´¹
-.\"WORD:       descriptor      ¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼
-.\"WORD:       sequence        Ê¸»úÎó
-.\"WORD:       
+.\" This file was generated with po4a. Translate the source file.
 .\"
-.TH ICONV 3 2008-09-08 "GNU" "Linux Programmer's Manual"
-.SH Ì¾Á°
-iconv \- Ê¸»ú¥»¥Ã¥ÈÊÑ´¹¤ò¹Ô¤¦
-.SH ½ñ¼°
+.\"*******************************************************************
+.TH ICONV 3 2008\-09\-08 GNU "Linux Programmer's Manual"
+.SH 名前
+iconv \- 文字セット変換を行う
+.SH 書式
 .nf
-.B #include <iconv.h>
+\fB#include <iconv.h>\fP
 .sp
-.BI "size_t iconv(iconv_t " cd ,
-.BI "             char **" inbuf ", size_t *" inbytesleft ,
-.BI "             char **" outbuf ", size_t *" outbytesleft );
+\fBsize_t iconv(iconv_t \fP\fIcd\fP\fB,\fP
+\fB             char **\fP\fIinbuf\fP\fB, size_t *\fP\fIinbytesleft\fP\fB,\fP
+\fB             char **\fP\fIoutbuf\fP\fB, size_t *\fP\fIoutbytesleft\fP\fB);\fP
 .fi
-.SH ÀâÌÀ
-°ú¤­¿ô \fIcd\fP ¤Ï¡¢´Ø¿ô
-.BR iconv_open (3)
-¤ò»È¤Ã¤ÆÀ¸À®¤µ¤ì¤ë
-ÊÑ´¹¥Ç¥£¥¹¥¯¥ê¥×¥¿¡¼¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+.SH 説明
+引き数 \fIcd\fP は、関数 \fBiconv_open\fP(3)  を使って生成される 変換ディスクリプターでなければならない。
 .PP
-¼ç¤Ë»È¤ï¤ì¤ë¤Î¤Ï¡¢
-¡Ö\fIinbuf\fP ¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä \fI*inbuf\fP ¤¬ NULL ¤Ç¤Ê¤¤¡×
-¤È¤¤¤¦¾ì¹ç¤Ç¤¢¤ë¡£
-¤³¤Î¾ì¹ç¡¢
-.BR iconv ()
-´Ø¿ô¤Ï¡¢
-\fI*inbuf\fP ¤Ç»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò
-\fI*outbuf\fP ¤Ç»Ï¤Þ¤ë¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£
-\fI*inbuf\fP ¤òÀèƬ¤È¤·¤ÆºÇÂç \fI*inbytesleft\fP ¥Ð¥¤¥È¤¬Æɤ߹þ¤Þ¤ì¡¢
-\fI*outbuf\fP ¤òÀèƬ¤È¤·¤ÆºÇÂç \fI*outbytesleft\fP ¥Ð¥¤¥È¤¬½ñ¤­½Ð¤µ¤ì¤ë¡£
+主に使われるのは、 「\fIinbuf\fP が NULL でなく、かつ \fI*inbuf\fP が NULL でない」 という場合である。 この場合、
+\fBiconv\fP()  関数は、 \fI*inbuf\fP で始まるマルチバイト文字列を \fI*outbuf\fP で始まるマルチバイト文字列に変換する。
+\fI*inbuf\fP を先頭として最大 \fI*inbytesleft\fP バイトが読み込まれ、 \fI*outbuf\fP を先頭として最大
+\fI*outbytesleft\fP バイトが書き出される。
 .PP
-.BR iconv ()
-´Ø¿ô¤Ï 1 Å٤ˠ1 ¤Ä¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»ú¤òÊÑ´¹¤¹¤ë¡£
-¤½¤·¤Æ¡¢³Æʸ»úÊÑ´¹Ëè¤Ë¡¢ÊÑ´¹¤µ¤ì¤¿ÆþÎϥХ¤¥È¤Î¿ô¤À¤±
-\fI*inbuf\fP ¤òÁý²Ã¤µ¤»¡¢\fI*inbytesleft\fP ¤ò¸º¾¯¤µ¤»¤ë¡£
-¤Þ¤¿¡¢ÊÑ´¹¤µ¤ì¤¿½ÐÎϥХ¤¥È¤Î¿ô¤À¤±
-\fI*outbuf\fP ¤òÁý²Ã¤µ¤»¡¢\fI*outbytesleft\fP ¤ò¸º¾¯¤µ¤»¤ë¡£
-¤µ¤é¤Ë¡¢\fIcd\fP ¤Ë´Þ¤Þ¤ì¤ëÊÑ´¹¾õÂÖ¤ò¹¹¿·¤¹¤ë¡£
-ÆþÎϤÎʸ»ú¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬¤¬¾õÂÖ¤ò»ý¤Ä¾ì¹ç¡¢
-.BR iconv ()
-´Ø¿ô¤ÏÆþÎϥХ¤¥È¤ÎÎó¤ËÂФ·¤ÆÊÑ´¹¤Ë¤âÂбþ¤·¤Æ¤ª¤ê¡¢
-¥Ð¥¤¥È½ÐÎϤòȼ¤ï¤º¤ËÊÑ´¹¾õÂÖ¤ò¹¹¿·¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£
-ÊÑ´¹¤Ï¡¢¼¡¤Î 4 ¤Ä¤Î¾ì¹ç¤ËÄä»ß¤¹¤ë¡£
+\fBiconv\fP()  関数は 1 度に 1 つのマルチバイト文字を変換する。 そして、各文字変換毎に、変換された入力バイトの数だけ \fI*inbuf\fP
+を増加させ、\fI*inbytesleft\fP を減少させる。 また、変換された出力バイトの数だけ \fI*outbuf\fP
+を増加させ、\fI*outbytesleft\fP を減少させる。 さらに、\fIcd\fP に含まれる変換状態を更新する。
+入力の文字エンコーディングがが状態を持つ場合、 \fBiconv\fP()  関数は入力バイトの列に対して変換にも対応しており、
+バイト出力を伴わずに変換状態を更新することができる。 変換は、次の 4 つの場合に停止する。
 .PP
-1. ÆþÎϤË̵¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬤¢¤Ã¤¿¾ì¹ç¡£
-¤³¤Î¾ì¹ç¡¢´Ø¿ô¤Ï \fIerrno\fP ¤ò \fBEILSEQ\fP ¤ËÀßÄꤷ¡¢
-.I (size_t)\ \-1
-¤òÊÖ¤¹¡£
-\fI*inbuf\fP ¤Ï¡¢Ìµ¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ÎÀèƬ¤ò»Ø¤·¤¿¤Þ¤Þ¤Ë¤Ê¤ë¡£
+1. 入力に無効なマルチバイト文字列があった場合。 この場合、関数は \fIerrno\fP を \fBEILSEQ\fP に設定し、 \fI(size_t)\ \-1\fP を返す。 \fI*inbuf\fP は、無効なマルチバイト文字列の先頭を指したままになる。
 .PP
-2. ÆþÎϥХ¤¥Èʸ»úÎ󤬴°Á´¤ËÊÑ´¹¤µ¤ì¡¢\fI*inbytesleft\fP ¤¬ 0 ¤Ë¤Ê¤Ã¤¿¾ì¹ç¡£
-¤³¤Î¾ì¹ç¡¢
-.BR iconv ()
-¤Ï¡¢¸Æ½Ð¤·¤Î´Ö¤ËÈó²ÄµÕÊÑ´¹¤¬¹Ô¤ï¤ì¤¿²ó¿ô¤òÊÖ¤¹¡£
+2. 入力バイト文字列が完全に変換され、\fI*inbytesleft\fP が 0 になった場合。 この場合、 \fBiconv\fP()
+は、呼出しの間に非可逆変換が行われた回数を返す。
 .PP
-3. ÆþÎϤËÉÔ´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬤¢¤ê¡¢
-ÆþÎϥХ¤¥Èʸ»úÎ󤬤½¤Î¸å¤Ç½ªÎ»¤·¤Æ¤¤¤ë¾ì¹ç¡£
-¤³¤Î¾ì¹ç¡¢´Ø¿ô¤Ï¡¢\fIerrno\fP ¤ò \fBEINVAL\fP ¤ËÀßÄꤷ¡¢
-.I (size_t)\ \-1
-¤òÊÖ¤¹¡£
-\fI*inbuf\fP ¤Ï¡¢ÉÔ´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ÎÀèƬ¤ò»Ø¤·¤¿¤Þ¤Þ¤Ë¤µ¤ì¤ë¡£
+3. 入力に不完全なマルチバイト文字列があり、 入力バイト文字列がその後で終了している場合。 この場合、関数は、\fIerrno\fP を \fBEINVAL\fP
+に設定し、 \fI(size_t)\ \-1\fP を返す。 \fI*inbuf\fP は、不完全なマルチバイト文字列の先頭を指したままにされる。
 .PP
-4. ½ÐÎϥХåե¡¡¼¤Ë¼¡¤ÎÊÑ´¹¤µ¤ì¤¿Ê¸»úÎó¤Î¤¿¤á¤Î¶õ¤­¤¬¤Ê¤¤¾ì¹ç¡£
-¤³¤Î¾ì¹ç¡¢\fIerrno\fP ¤¬ \fBE2BIG\fP ¤ËÀßÄꤵ¤ì¡¢
-.I (size_t)\ \-1
-¤¬ÊÖ¤µ¤ì¤ë¡£
+4. 出力バッファーに次の変換された文字列のための空きがない場合。 この場合、\fIerrno\fP が \fBE2BIG\fP に設定され、
+\fI(size_t)\ \-1\fP が返される。
 .PP
-Ê̤Υ±¡¼¥¹¤È¤·¤Æ¤Ï¡¢
-¡Ö\fIinbuf\fP ¤¬ NULL¡¢¤Þ¤¿¤Ï \fI*inbuf\fP ¤¬ NULL ¤Ç¤¢¤ë¡£
-¤·¤«¤·¡¢\fIoutbuf\fP ¤¬ NULL ¤Ç¤Ê¤¯¡¢¤«¤Ä \fI*outbuf\fP ¤¬ NULL ¤Ç¤Ê¤¤¡×
-¤È¤¤¤¦¾ì¹ç¤¬¤¢¤ë¡£
-¤³¤Î¾ì¹ç¡¢
-.BR iconv ()
-´Ø¿ô¤Ï¡¢\fIcd\fP ¤ÎÊÑ´¹¾õÂÖ¤ò½é´ü¾õÂ֤ˤ·¤Æ¡¢
-Âбþ¤¹¤ë¥·¥Õ¥Èʸ»úÎó¤ò \fI*outbuf\fP ¤ËÊݸ¤·¤è¤¦¤È¤¹¤ë¡£
-ºÇÂç \fI*outbytesleft\fP ¥Ð¥¤¥È¤¬¡¢\fI*outbuf\fP ¤ò»Ï¤á¤È¤·¤Æ½ñ¤­½Ð¤µ¤ì¤ë¡£
-¤³¤Î¥ê¥»¥Ã¥È¤µ¤ì¤¿Ê¸»úÎó¤ËÂФ·¤Æ¡¢½ÐÎϥХåե¡¡¼¤Ë¶õ¤­¤¬¤Ê¤¤¾ì¹ç¡¢
-¤³¤Î´Ø¿ô¤Ï \fIerrno\fP ¤ò \fBE2BIG\fP ¤ËÀßÄꤷ¡¢
-.I (size_t)\ \-1
-¤òÊÖ¤¹¡£
-¤½¤ì°Ê³°¤Î¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï¡¢½ñ¤­¹þ¤Þ¤ì¤¿¥Ð¥¤¥È¤Î¿ô¤À¤±
-\fI*outbuf\fP ¤òÁý²Ã¤µ¤»¡¢\fI*outbytesleft\fP ¤ò¸º¾¯¤µ¤»¤ë¡£
+別のケースとしては、 「\fIinbuf\fP が NULL、または \fI*inbuf\fP が NULL である。 しかし、\fIoutbuf\fP が NULL
+でなく、かつ \fI*outbuf\fP が NULL でない」 という場合がある。 この場合、 \fBiconv\fP()  関数は、\fIcd\fP
+の変換状態を初期状態にして、 対応するシフト文字列を \fI*outbuf\fP に保存しようとする。 最大 \fI*outbytesleft\fP
+バイトが、\fI*outbuf\fP を始めとして書き出される。 このリセットされた文字列に対して、出力バッファーに空きがない場合、 この関数は
+\fIerrno\fP を \fBE2BIG\fP に設定し、 \fI(size_t)\ \-1\fP を返す。 それ以外の場合、この関数は、書き込まれたバイトの数だけ
+\fI*outbuf\fP を増加させ、\fI*outbytesleft\fP を減少させる。
 .PP
-3 ÈÖÌܤΥ±¡¼¥¹¤·¤Æ¤Ï¡¢
-¡Ö\fIinbuf\fP ¤¬ NULL¡¢¤Þ¤¿¤Ï \fI*inbuf\fP ¤¬ NULL ¤Ç¤¢¤ë¡£
-¤«¤Ä¡¢\fIoutbuf\fP ¤¬ NULL¡¢¤Þ¤¿¤Ï \fI*outbuf\fP ¤¬ NULL ¤Ç¤¢¤ë¡×
-¤È¤¤¤¦¾ì¹ç¤¬¤¢¤ë¡£
-¤³¤Î¾ì¹ç¡¢
-.BR iconv ()
-´Ø¿ô¤Ï¡¢\fIcd\fP ¤ÎÊÑ´¹¾õÂÖ¤ò½é´ü¾õÂ֤ˤ¹¤ë¡£
-.SH ÊÖ¤êÃÍ
-.BR iconv ()
-´Ø¿ô¤Ï¡¢¸Æ½Ð¤·¤Î´Ö¤ËÈó²ÄµÕ¤ÊÊýË¡¤ÇÊÑ´¹¤µ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹¡£
-¤Ä¤Þ¤ê¡¢²ÄµÕÊÑ´¹¤Ï¥«¥¦¥ó¥È¤µ¤ì¤Ê¤¤¡£
-¥¨¥é¡¼¤Î¾ì¹ç¡¢¤³¤Î´Ø¿ô¤Ï \fIerrno\fP ¤òÀßÄꤷ¡¢
-.I (size_t)\ \-1
-¤òÊÖ¤¹¡£
-.SH ¥¨¥é¡¼
-¾¤Î¤¤¤í¤¤¤í¤Ê¥¨¥é¡¼¤Î¤¦¤Á¤«¤é¡¢°Ê²¼¤Î¥¨¥é¡¼¤¬µ¯¤³¤ê¤¦¤ë¡£
-.TP
-.B E2BIG
-\fI*outbuf\fP ¤Ë½½Ê¬¤Ê¶õ¤­¤¬¤Ê¤¤¡£
-.TP
-.B EILSEQ
-ÆþÎϤË̵¸ú¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬤¢¤Ã¤¿¡£
-.TP
-.B EINVAL
-ÆþÎϤËÉÔ´°Á´¤Ê¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬤¢¤Ã¤¿¡£
-.SH ¥Ð¡¼¥¸¥ç¥ó
-¤³¤Î´Ø¿ô¤Ï¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤Î glibc ¤ÇÍøÍѲÄǽ¤Ç¤¢¤ë¡£
-.SH ½àµò
-POSIX.1-2001.
-.SH ´ØÏ¢¹àÌÜ
-.BR iconv_close (3),
-.BR iconv_open (3)
+3 番目のケースしては、 「\fIinbuf\fP が NULL、または \fI*inbuf\fP が NULL である。 かつ、\fIoutbuf\fP が
+NULL、または \fI*outbuf\fP が NULL である」 という場合がある。 この場合、 \fBiconv\fP()  関数は、\fIcd\fP
+の変換状態を初期状態にする。
+.SH 返り値
+\fBiconv\fP()  関数は、呼出しの間に非可逆な方法で変換された文字数を返す。 つまり、可逆変換はカウントされない。 エラーの場合、この関数は
+\fIerrno\fP を設定し、 \fI(size_t)\ \-1\fP を返す。
+.SH エラー
+他のいろいろなエラーのうちから、以下のエラーが起こりうる。
+.TP 
+\fBE2BIG\fP
+\fI*outbuf\fP に十分な空きがない。
+.TP 
+\fBEILSEQ\fP
+入力に無効なマルチバイト文字列があった。
+.TP 
+\fBEINVAL\fP
+入力に不完全なマルチバイト文字列があった。
+.SH バージョン
+この関数はバージョン 2.1 以降の glibc で利用可能である。
+.SH 準拠
+POSIX.1\-2001.
+.SH 関連項目
+\fBiconv_close\fP(3), \fBiconv_open\fP(3)