OSDN Git Service

03148a1c06a7e832fe5316762f9ce9446503923c
[linuxjm/LDP_man-pages.git] / draft / man3 / mbrtowc.3
1 .\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
2 .\"
3 .\" This is free documentation; you can redistribute it and/or
4 .\" modify it under the terms of the GNU General Public License as
5 .\" published by the Free Software Foundation; either version 2 of
6 .\" the License, or (at your option) any later version.
7 .\"
8 .\" References consulted:
9 .\"   GNU glibc-2 source code and manual
10 .\"   Dinkumware C library reference http://www.dinkumware.com/
11 .\"   OpenGroup's Single UNIX specification
12 .\"      http://www.UNIX-systems.org/online.html
13 .\"   ISO/IEC 9899:1999
14 .\"
15 .\" Japanese Version Copyright (c) 1999 HANATAKA Shinya
16 .\"         all rights reserved.
17 .\" Translated Tue Jan 11 00:56:16 JST 2000
18 .\"         by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
19 .\" Updated Thu Dec 13 JST 2001 by Kentaro Shirakata <argrath@ub32.org>
20 .\"
21 .TH MBRTOWC 3  2011-09-28 "GNU" "Linux Programmer's Manual"
22 .\"O .SH NAME
23 .SH 名前
24 .\"O mbrtowc \- convert a multibyte sequence to a wide character
25 mbrtowc \- マルチバイト列をワイド文字に変換する
26 .\"O .SH SYNOPSIS
27 .SH 書式
28 .nf
29 .B #include <wchar.h>
30 .sp
31 .BI "size_t mbrtowc(wchar_t *" pwc ", const char *" s ", size_t " n \
32 ", mbstate_t *" ps );
33 .fi
34 .\"O .SH DESCRIPTION
35 .SH 説明
36 .\"O The main case for this function is when \fIs\fP is not NULL and \fIpwc\fP is
37 .\"O not NULL.
38 .\"O In this case, the
39 .\"O .BR mbrtowc ()
40 .\"O function inspects at most \fIn\fP
41 .\"O bytes of the multibyte string starting at \fIs\fP, extracts the next complete
42 .\"O multibyte character, converts it to a wide character and stores it at
43 .\"O \fI*pwc\fP.
44 .\"O It updates the shift state \fI*ps\fP.
45 .\"O If the converted wide
46 .\"O- character is not L\(aq\\0\(aq, it returns the number of bytes that were consumed
47 .\"O+ character is not L\(aq\\0\(aq (the null wide character),
48 .\"O+ it returns the number of bytes that were consumed
49 .\"O from \fIs\fP.
50 .\"O If the converted wide character is L\(aq\\0\(aq, it resets the shift
51 .\"O state \fI*ps\fP to the initial state and returns 0.
52 この関数が用いられる場合、通常 \fIs\fP が NULL でなく \fIpwc\fP も NULL で
53 ない。この場合は、
54 .BR mbrtowc ()
55 関数は \fIs\fP から始まる最大 \fIn\fP バイトの
56 マルチバイト文字を検査して、次の完全なマルチバイト文字列を取り出し、
57 それをワイド文字に変換して \fI*pwc\fP に格納する。
58 同時にシフト状態 \fI*ps\fP を更新する。
59 変換したワイド文字が L\(aq\\0\(aq (NULL ワイド文字) でなければ、
60 \fIs\fP から消費するバイト数を返す。
61 変換したワイド文字が L\(aq\\0\(aq の場合にはシフト状態 \fI*ps\fP を
62 初期状態に戻して 0 を返す。
63 .PP
64 .\"O If the \fIn\fP bytes starting at \fIs\fP do not contain a complete multibyte
65 .\"O character,
66 .\"O .BR mbrtowc ()
67 .\"O returns \fI(size_t)\ \-2\fP.
68 .\"O This can happen even if
69 .\"O \fIn\fP >= \fIMB_CUR_MAX\fP, if the multibyte string contains redundant shift
70 .\"O sequences.
71 \fIs\fP から始まる \fIn\fP バイトが完全なマルチバイト文字を含んでいない
72 場合には、
73 .BR mbrtowc ()
74 は \fI(size_t)\ \-2\fP を返す。
75 マルチバイト文字列に冗長なシフトシーケンスが含まれていると、
76 \fIn\fP >= \fIMB_CUR_MAX\fP の時にもこのようなことが起こりえる。
77 .PP
78 .\"O If the multibyte string starting at \fIs\fP contains an invalid multibyte
79 .\"O sequence before the next complete character,
80 .\"O .BR mbrtowc ()
81 .\"O returns
82 .\"O \fI(size_t)\ \-1\fP and sets \fIerrno\fP to \fBEILSEQ\fP.
83 .\"O In this case,
84 .\"O the effects on \fI*ps\fP are undefined.
85 \fIs\fP から始まるマルチバイト文字列が、次の完全な文字の前に
86 不正なマルチバイト列を含んでいる場合には、
87 .BR mbrtowc ()
88
89 \fI(size_t)\ \-1\fP を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。
90 この場合は \fI*ps\fP への影響は未定義である。
91 .PP
92 .\"O A different case is when \fIs\fP is not NULL but \fIpwc\fP is NULL.
93 .\"O In this
94 .\"O case the
95 .\"O .BR mbrtowc ()
96 .\"O function behaves as above, except that it does not
97 .\"O store the converted wide character in memory.
98 \fIs\fP が NULL でなく \fIpwc\fP が NULL の場合は
99 .BR mbrtowc ()
100 関数は
101 上記と同様に動作するが、変換したワイド文字はメモリには書き込まれない。
102 .PP
103 .\"O A third case is when \fIs\fP is NULL.
104 .\"O In this case, \fIpwc\fP and \fIn\fP are
105 .\"O ignored.
106 .\"O If the conversion state represented by \fI*ps\fP denotes an
107 .\"O incomplete multibyte character conversion, the
108 .\"O .BR mbrtowc ()
109 .\"O function
110 .\"O returns \fI(size_t)\ \-1\fP, sets \fIerrno\fP to \fBEILSEQ\fP, and
111 .\"O leaves \fI*ps\fP in an undefined state.
112 .\"O Otherwise, the
113 .\"O .BR mbrtowc ()
114 .\"O function
115 puts \fI*ps\fP in the initial state and returns 0.
116 三番目の場合として \fIs\fP が NULL の場合、 \fIpwc\fP と \fIn\fP は
117 無視される。
118 \fI*ps\fP が表現する変換状態が不完全なマルチバイト文字変換を示している場合は、
119 .BR mbrtowc ()
120 関数は \fI(size_t)\ \-1\fP を返し、
121 \fIerrno\fP に \fBEILSEQ\fP をセットし、
122 \fI*ps\fP は未定義状態のままにする。
123 さもなければ、
124 .BR mbrtowc ()
125 関数は \fI*ps\fP を初期状態にして 0 を返す。
126 .PP
127 .\"O In all of the above cases, if \fIps\fP is a NULL pointer, a static anonymous
128 .\"O state only known to the mbrtowc function is used instead.
129 上記の全ての場合において、\fIps\fP が NULL ポインターならば代わりに
130 mbrtowc 関数のみが使用する静的で名前のない状態が使用される。
131 .\"O Otherwise, \fI*ps\fP must be a valid \fImbstate_t\fP object.
132 さもなければ、\fI*ps\fP は有効な \fImbstate_t\fP オブジェクトで
133 なければならない。
134 .\"O An \fImbstate_t\fP object \fIa\fP can be initialized to the initial state
135 .\"O by zeroing it, for example using
136 \fImbstate_t\fP オブジェクトである \fIa\fP はゼロで埋めることによって
137 初期状態に初期化できる。以下に例を示す。
138 .sp
139 .in +4n
140 memset(&a, 0, sizeof(a));
141 .in
142 .\"O .SH "RETURN VALUE"
143 .SH 返り値
144 .\"O The
145 .\"O .BR mbrtowc ()
146 .\"O function returns the number of bytes parsed from the
147 .\"O multibyte sequence starting at \fIs\fP, if a non-L\(aq\\0\(aq wide character
148 .\"O was recognized.
149 L\(aq\\0\(aq 以外のワイド文字を認識した場合には
150 .BR mbrtowc ()
151 関数は \fIs\fP
152 から始まるマルチバイト列から解析したバイト数を返す。
153 .\"O It returns 0, if a L\(aq\\0\(aq wide character was recognized.
154 .\"O It returns
155 .\"O .I (size_t)\ \-1
156 .\"O and sets \fIerrno\fP to \fBEILSEQ\fP, if an invalid multibyte sequence was
157 .\"O encountered.
158 .\"O It returns \fI(size_t)\ \-2\fP if it couldn't parse a complete multibyte
159 .\"O character, meaning that \fIn\fP should be increased.
160 L\(aq\\0\(aq ワイド文字を認識した場合には 0 を返す。
161 不正なマルチバイト列に遭遇した場合には
162 .I (size_t)\ \-1
163 を返し、
164 \fIerrno\fP に \fBEILSEQ\fP を設定する。完全なマルチバイト文字を
165 解析できなかった場合には
166 .I (size_t)\ \-2
167 を返し \fIn\fP を増加させる必要があることを示す。
168 .\"O .SH "CONFORMING TO"
169 .SH 準拠
170 C99.
171 .\"O .SH NOTES
172 .SH 注意
173 .\"O The behavior of
174 .\"O .BR mbrtowc ()
175 .\"O depends on the
176 .\"O .B LC_CTYPE
177 .\"O category of the
178 .\"O current locale.
179 .BR mbrtowc ()
180 の動作は現在のロケールの
181 .B LC_CTYPE
182 カテゴリに依存している。
183 .\"O .SH "SEE ALSO"
184 .SH 関連項目
185 .BR mbsrtowcs (3)