1 .\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
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.
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
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>
21 .TH MBRTOWC 3 2011-09-28 "GNU" "Linux Programmer's Manual"
23 mbrtowc \- マルチバイト列をワイド文字に変換する
28 .BI "size_t mbrtowc(wchar_t *" pwc ", const char *" s ", size_t " n \
32 この関数が用いられる場合、通常 \fIs\fP が NULL でなく \fIpwc\fP も NULL で
35 関数は \fIs\fP から始まる最大 \fIn\fP バイトの
36 マルチバイト文字を検査して、次の完全なマルチバイト文字列を取り出し、
37 それをワイド文字に変換して \fI*pwc\fP に格納する。
38 同時にシフト状態 \fI*ps\fP を更新する。
39 変換したワイド文字が L\(aq\\0\(aq (NULL ワイド文字) でなければ、
40 \fIs\fP から消費するバイト数を返す。
41 変換したワイド文字が L\(aq\\0\(aq の場合にはシフト状態 \fI*ps\fP を
44 \fIs\fP から始まる \fIn\fP バイトが完全なマルチバイト文字を含んでいない
47 は \fI(size_t)\ \-2\fP を返す。
48 マルチバイト文字列に冗長なシフトシーケンスが含まれていると、
49 \fIn\fP >= \fIMB_CUR_MAX\fP の時にもこのようなことが起こりえる。
51 \fIs\fP から始まるマルチバイト文字列が、次の完全な文字の前に
55 \fI(size_t)\ \-1\fP を返し、\fIerrno\fP に \fBEILSEQ\fP を設定する。
56 この場合は \fI*ps\fP への影響は未定義である。
58 \fIs\fP が NULL でなく \fIpwc\fP が NULL の場合は
61 上記と同様に動作するが、変換したワイド文字はメモリには書き込まれない。
63 puts \fI*ps\fP in the initial state and returns 0.
64 三番目の場合として \fIs\fP が NULL の場合、 \fIpwc\fP と \fIn\fP は
66 \fI*ps\fP が表現する変換状態が不完全なマルチバイト文字変換を示している場合は、
68 関数は \fI(size_t)\ \-1\fP を返し、
69 \fIerrno\fP に \fBEILSEQ\fP をセットし、
70 \fI*ps\fP は未定義状態のままにする。
73 関数は \fI*ps\fP を初期状態にして 0 を返す。
75 上記の全ての場合において、\fIps\fP が NULL ポインターならば代わりに
76 mbrtowc 関数のみが使用する静的で名前のない状態が使用される。
77 さもなければ、\fI*ps\fP は有効な \fImbstate_t\fP オブジェクトで
79 \fImbstate_t\fP オブジェクトである \fIa\fP はゼロで埋めることによって
83 memset(&a, 0, sizeof(a));
86 L\(aq\\0\(aq 以外のワイド文字を認識した場合には
89 から始まるマルチバイト列から解析したバイト数を返す。
90 L\(aq\\0\(aq ワイド文字を認識した場合には 0 を返す。
94 \fIerrno\fP に \fBEILSEQ\fP を設定する。完全なマルチバイト文字を
97 を返し \fIn\fP を増加させる必要があることを示す。