.\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
.\"
+.\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
+.\" %%%LICENSE_END
.\"
.\" References consulted:
.\" GNU glibc-2 source code and manual
.\" Dinkumware C library reference http://www.dinkumware.com/
-.\" OpenGroup's Single Unix specification http://www.UNIX-systems.org/online.html
+.\" OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
.\"
.\" Japanese Version Copyright (c) 1999 HANATAKA Shinya
.\" all rights reserved.
.\" Translated Tue Jan 11 00:56:10 JST 2000
.\" by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
.\"
-.TH MBSNRTOWCS 3 2007-07-26 "GNU" "Linux Programmer's Manual"
-.SH ̾Á°
-mbsnrtowcs \- ¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ò¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹¤¹¤ë
-.SH ½ñ¼°
+.TH MBSNRTOWCS 3 2014\-03\-18 GNU "Linux Programmer's Manual"
+.SH 名前
+mbsnrtowcs \- マルチバイト文字列をワイド文字列に変換する
+.SH 書式
.nf
-.B #define _GNU_SOURCE
-.B #include <wchar.h>
+\fB#include <wchar.h>\fP
.sp
-.BI "size_t mbsnrtowcs(wchar_t *" dest ", const char **" src ,
-.BI " size_t " nms ", size_t " len ", mbstate_t *" ps );
+\fBsize_t mbsnrtowcs(wchar_t *\fP\fIdest\fP\fB, const char **\fP\fIsrc\fP\fB,\fP
+\fB size_t \fP\fInms\fP\fB, size_t \fP\fIlen\fP\fB, mbstate_t *\fP\fIps\fP\fB);\fP
.fi
-.SH ÀâÌÀ
-.BR mbsnrtowcs ()
-´Ø¿ô¤Ï
-.BR mbsrtowcs (3)
-´Ø¿ô¤Ë»÷¤Æ¤¤¤ë¤¬
-ÊÑ´¹¤¹¤ë¥Ð¥¤¥È¿ô¤¬ \fI*src\fP ¤«¤é»Ï¤Þ¤ë \fInms\fP ¥Ð¥¤¥È¤ËÀ©¸Â¤µ¤ì¤Æ¤¤¤ë
-ÅÀ¤¬°Û¤Ê¤Ã¤Æ¤¤¤ë¡£
+.sp
+.in -4n
+glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照):
+.in
+.sp
+\fBmbsnrtowcs\fP():
+.PD 0
+.ad l
+.RS 4
+.TP 4
+glibc 2.10 以降:
+_XOPEN_SOURCE\ >=\ 700 || _POSIX_C_SOURCE\ >=\ 200809L
+.TP
+glibc 2.10 より前:
+_GNU_SOURCE
+.RE
+.ad
+.PD
+.SH 説明
+\fBmbsnrtowcs\fP() 関数は \fBmbsrtowcs\fP(3) 関数に似ているが 変換するバイト数が \fI*src\fP から始まる
+\fInms\fP バイトに制限されている 点が異なっている。
.PP
-\fIdest\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ç¤Ê¤±¤ì¤Ð
-.BR mbsnrtowcs ()
-´Ø¿ô¤Ï
-\fI*src\fP ¤«¤é¤Î¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎó¤ÎºÇÂç \fInms\fP ¤Þ¤Ç¤ò
-\fIdest\fP ¤«¤é¤Î¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹¤¹¤ë¡£
-ºÇÂç \fIlen\fP ʸ»ú¤Î¥ï¥¤¥Éʸ»ú¤¬ \fIdest\fP ¤Ë½ñ¤¹þ¤Þ¤ì¤ë¡£
-Ʊ»þ¤Ë¥·¥Õ¥È¾õÂÖ \fI*ps\fP ¤ò¹¹¿·¤¹¤ë¡£
-ÊÑ´¹¤Ï
-.I "mbrtowc(dest, *src, n, ps)"
-¤ò¡¢¤³¤Î¸Æ¤Ó½Ð¤·¤¬À®¸ù¤¹¤ë¸Â¤ê¡¢·«¤êÊÖ¤·¼Â¹Ô¤·¤¿¤Î¤È¼Â¼ÁŪ¤ËƱÍͤǤ¢¤ë¡£
-¤³¤³¤Ç¤Î \fIn\fP ¤ÏÀµ¤Î¿ô¤Ç¤¢¤ê¡¢·«¤êÊÖ¤·¤´¤È¤Ë \fIdest\fP ¤¬ 1 Áý²Ã¤µ¤»¤é¤ì¡¢
-\fI*src\fP ¤¬¾ÃÈñ¤·¤¿¥Ð¥¤¥È¿ô¤À¤±Áý²Ã¤µ¤»¤é¤ì¤ë¡£ÊÑ´¹¤Ï°Ê²¼¤Î»°¤Ä¤Î
-¤¤¤º¤ì¤«¤Î¾ò·ï¤ÇÄä»ß¤¹¤ë:
+\fIdest\fP が NULL でなければ \fBmbsnrtowcs\fP() 関数は \fI*src\fP からのマルチバイト文字列の最大 \fInms\fP までを
+\fIdest\fP からのワイド文字列に変換する。 最大 \fIlen\fP 文字のワイド文字が \fIdest\fP に書き込まれる。 同時にシフト状態 \fI*ps\fP
+を更新する。 変換は \fImbrtowc(dest, *src, n, ps)\fP
+を、この呼び出しが成功する限り、繰り返し実行したのと実質的に同様である。 ここでの \fIn\fP は正の数であり、繰り返しごとに \fIdest\fP が 1
+増加させられ、 \fI*src\fP が消費したバイト数だけ増加させられる。変換は以下の三つの いずれかの条件で停止する:
.IP 1. 3
-ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¡£¤³¤Î¾ì¹ç¤Ë¤Ï \fI*src\fP ¤ÏÉÔÀµ¤Ê
-¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò»Ø¤¹¤è¤¦¤Ë¤·¤Æ¡¢
-.I (size_t)\ \-1
-¤òÊÖ¤·¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£
+不正なマルチバイト列に遭遇した。この場合には \fI*src\fP は不正な マルチバイト列を指すようにして、 \fI(size_t)\ \-1\fP
+を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。
.IP 2.
-\fInms\fP À©¸Â¤Ë¤è¤Ã¤Æ¶¯À©Åª¤ËÄä»ß¤¹¤ë¤«¡¢\fIlen\fP ʸ»ú¤Î L\(aq\\0\(aq °Ê³°¤Î
-¥ï¥¤¥Éʸ»ú¤ò \fIdest\fP ¤Ë³ÊǼ¤·¤¿¾ì¹ç¡£¤³¤Î¾ì¹ç¤Ï \fI*src\fP ¤Ï
-¼¡¤ËÊÑ´¹¤µ¤ì¤ë¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ò»Ø¤¹¤è¤¦¤Ë¤·¤Æ¡¢\fIdest\fP ¤Ë½ñ¤¹þ¤Þ¤ì¤¿
-¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£
+\fInms\fP 制限によって強制的に停止するか、\fIlen\fP 文字の L\(aq\e0\(aq 以外の ワイド文字を \fIdest\fP
+に格納した場合。この場合は \fI*src\fP は 次に変換されるマルチバイト列を指すようにして、\fIdest\fP に書き込まれた ワイド文字の数を返す。
.IP 3.
-¥Þ¥ë¥Á¥Ð¥¤¥Èʸ»úÎ󤬽ªÃ¼¤Î \(aq\\0\(aq ¤Þ¤Ç´Þ¤á¤Æ´°Á´¤ËÊÑ´¹¤µ¤ì¤¿¾ì¹ç¡£
-(¤³¤Î»þ¡¢ÉûºîÍѤȤ·¤Æ \fI*ps\fP ¤¬½é´ü¾õÂÖ¤ËÌᤵ¤ì¤ë¡£)
-¤³¤Î¾ì¹ç¤Ï \fI*src\fP ¤Ë¤Ï NULL ¤¬ÀßÄꤵ¤ì¡¢½ªÃ¼¤Î L\(aq\\0\(aq ʸ»ú¤ò½ü¤¤¤Æ
-\fIdest\fP ¤Ë½ñ¤¹þ¤Þ¤ì¤¿Ê¸»ú¿ô¤òÊÖ¤¹¡£
+マルチバイト文字列が終端のヌルワイド文字 (\(aq\e0\(aq) まで含めて完全に変換された場合。 (この時、副作用として \fI*ps\fP
+が初期状態に戻される。) この場合は \fI*src\fP には NULL が設定され、 \fIdest\fP に書き込まれた文字数 (終端の
+ヌルワイド文字は含まれない) を返す。
.PP
-\fIdest\fP ¤¬ NULL ¤Î¾ì¹ç¡¢\fIlen\fP ¤Ï̵»ë¤µ¤ì¡¢¾åµ¤ÈƱÍͤÎÊÑ´¹¤¬
-¹Ô¤ï¤ì¤ë¤¬¡¢ÊÑ´¹¤µ¤ì¤¿¥ï¥¤¥Éʸ»ú¤Ï¥á¥â¥ê¤Ë½ñ¤¹þ¤Þ¤ì¤º¡¢ÊÑ´¹Àè¤Î¾å¸Â
-¤¬Â¸ºß¤·¤Ê¤¤¡£
+\fIdest\fP が NULL の場合、\fIlen\fP は無視され、上記と同様の変換が 行われるが、変換されたワイド文字はメモリに書き込まれず、変換先の上限
+が存在しない。
.PP
-¾åµ¤Î¤É¤Á¤é¤Î¾ì¹ç¤Ç¤â¡¢\fIps\fP ¤¬ NULL ¥Ý¥¤¥ó¥¿¡¼¤Ê¤é¤Ð¡¢Âå¤ê¤Ë
-mbsnrtowcs ´Ø¿ô¤Î¤ß¤¬»ÈÍѤ¹¤ëÀÅŪ¤Ç̾Á°¤Î¤Ê¤¤¾õÂÖ¤¬»ÈÍѤµ¤ì¤ë¡£
+上記のどちらの場合でも、\fIps\fP が NULL ならば、 代りに \fBmbsnrtowcs\fP() 関数のみが使用する静的で名前のない状態が使用される。
.PP
-¥×¥í¥°¥é¥Þ¡¼¤Ï \fIdest\fP ¤ËºÇÄã¤Ç¤â \fIlen\fP ¥ï¥¤¥Éʸ»ú¤ò½ñ¤¹þ¤à¤³
-¤È¤¬¤Ç¤¤ë¶õ´Ö¤¬¤¢¤ë¤³¤È¤òÊݾڤ·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
-.SH ÊÖ¤êÃÍ
-.BR mbsnrtowcs ()
-´Ø¿ô¤Ï¥ï¥¤¥Éʸ»úÎó¤ËÊÑ´¹´°Î»¤·¤¿¥ï¥¤¥Éʸ»ú¤Î¿ô¤òÊÖ¤¹¡£
-½ªÃ¼¤Î¥Ê¥ë¥ï¥¤¥Éʸ»ú¤Ï´Þ¤Þ¤Ê¤¤¡£ÉÔÀµ¤Ê¥Þ¥ë¥Á¥Ð¥¤¥ÈÎó¤ËÁø¶ø¤·¤¿¾ì¹ç¤Ë¤Ï
-.I (size_t)\ \-1
-¤òÊÖ¤·¡¢\fIerrno\fP ¤Ë \fBEILSEQ\fP ¤òÀßÄꤹ¤ë¡£
-.SH ½àµò
-¤³¤Î´Ø¿ô¤Ï GNU ¤Î³ÈÄ¥¤Ç¤¢¤ë¡£
-.SH Ãí°Õ
-.BR mbsnrtowcs ()
-¤ÎÆ°ºî¤Ï¸½ºß¤Î¥í¥±¡¼¥ë¤Î
-.B LC_CTYPE
-¥«¥Æ¥´¥ê¤Ë°Í¸¤·¤Æ¤¤¤ë¡£
+プログラマーは \fIdest\fP に最低でも \fIlen\fP ワイド文字を書き込むこ とができる空間があることを保証しなければならない。
+.SH 返り値
+\fBmbsnrtowcs\fP() 関数はワイド文字列に変換完了したワイド文字の数を返す。
+終端のナルワイド文字は含まない。不正なマルチバイト列に遭遇した場合には \fI(size_t)\ \-1\fP を返し、\fIerrno\fP に \fBEILSEQ\fP
+を設定する。
+.SH 準拠
+POSIX.1\-2008.
+.SH 注意
+\fBmbsnrtowcs\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
.PP
-\fIps\fP ¤È¤·¤Æ NULL ¤òÅϤ¹¤³¤È¤Ï¥Þ¥ë¥Á¥¹¥ì¥Ã¥É¤Ç¤Ï°ÂÁ´¤Ç¤Ê¤¤¡£
-.SH ´ØÏ¢¹àÌÜ
-.BR iconv (3),
-.BR mbsrtowcs (3)
+\fIps\fP に NULL を渡した際の動作はマルチスレッドセーフでない。
+.SH 関連項目
+\fBiconv\fP(3), \fBmbrtowc\fP(3) \fBmbsinit\fP(3), \fBmbsrtowcs\fP(3)
+.SH この文書について
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.76 の一部
+である。プロジェクトの説明とバグ報告に関する情報は
+http://www.kernel.org/doc/man\-pages/ に書かれている。