OSDN Git Service

(split) Convert release and draft pages to UTF-8.
[linuxjm/LDP_man-pages.git] / release / man3 / mbrlen.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 http://www.UNIX-systems.org/online.html
12 .\"   ISO/IEC 9899:1999
13 .\"
14 .\" Japanese Version Copyright (c) 1999 HANATAKA Shinya
15 .\"         all rights reserved.
16 .\" Translated Tue Jan 11 00:56:19 JST 2000
17 .\"         by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
18 .\"
19 .TH MBRLEN 3 1999-07-25 "GNU" "Linux Programmer's Manual"
20 .SH 名前
21 mbrlen \- 次のマルチバイト文字の長さをバイト数で返す
22 .SH 書式
23 .nf
24 .B #include <wchar.h>
25 .sp
26 .BI "size_t mbrlen(const char *" s ", size_t " n ", mbstate_t *" ps );
27 .fi
28 .SH 説明
29 .BR mbrlen ()
30 関数は \fIs\fP から始まるマルチバイト文字列を
31 最大 \fIn\fP バイト調べて次の完全なマルチバイト文字を取り出す。
32 同時にシフト状態 \fI*ps\fP を更新する。
33 マルチバイト文字がナルワイド文字でなければ \fIs\fP から
34 消費するバイト数を返す。ナルワイド文字ならばシフト状態 \fI*ps\fP を
35 初期状態に戻して、0 を返す。
36 .PP
37 \fIs\fP から始まる \fIn\fP バイトの文字列が完全なマルチバイト文字を含んで
38 いない場合には
39 .BR mbrlen ()
40 は \fI(size_t)\ \-2\fP を返す。
41 マルチバイト文字列に冗長なシフトシーケンスを含まれていると
42 \fIn\fP >= \fIMB_CUR_MAX\fP の時にもこのようなことが起こりえる。
43 .PP
44 \fIs\fP から始まるマルチバイト文字列が、次の完全な文字の前に
45 不正なマルチバイト列を含んでいる場合には、
46 .BR mbrlen ()
47
48 \fI(size_t)\ \-1\fP を返し \fIerrno\fP に \fBEILSEQ\fP が設定される。
49 この場合の \fI*ps\fP への影響は未定義である。
50 .PP
51 \fIps\fP が NULL ポインターならば、代りに
52 .BR mbrlen ()
53 関数のみが使用する静的で名前のない状態が使用される。
54 .SH 返り値
55 ナルワイド文字以外の文字を確認した場合には、
56 .BR mbrlen ()
57 関数は \fIs\fP
58 から始まるマルチバイト列から使用したバイト数を返す。
59 ナルワイド文字が確認された場合にはゼロを返す。
60 不正なマルチバイト列に遭遇した場合には
61 .I "(size_t)\ \-1"
62 を返し
63 \fIerrno\fP に \fBEILSEQ\fP を設定する。
64 完全なマルチバイト文字を解析できなかった場合には \fI(size_t)\ \-2\fP を返す。
65 これは \fIn\fP を増さなければならないことを意味する。
66 .SH 準拠
67 C99.
68 .SH 注意
69 .BR mbrlen ()
70 の動作は現在のロケールの
71 .B LC_CTYPE
72 カテゴリに依存している。
73 .SH 関連項目
74 .BR mbrtowc (3)