.\" Copyright (c) Bruno Haible .\" .\" 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. .\" .\" 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 .\" ISO/IEC 9899:1999 .\" .\" Japanese Version Copyright (c) 1999 HANATAKA Shinya .\" all rights reserved. .\" Translated Tue Jan 11 00:56:19 JST 2000 .\" by HANATAKA Shinya .\" .TH MBRLEN 3 1999-07-25 "GNU" "Linux Programmer's Manual" .SH 名前 mbrlen \- 次のマルチバイト文字の長さをバイト数で返す .SH 書式 .nf .B #include .sp .BI "size_t mbrlen(const char *" s ", size_t " n ", mbstate_t *" ps ); .fi .SH 説明 .BR mbrlen () 関数は \fIs\fP から始まるマルチバイト文字列を 最大 \fIn\fP バイト調べて次の完全なマルチバイト文字を取り出す。 同時にシフト状態 \fI*ps\fP を更新する。 マルチバイト文字がナルワイド文字でなければ \fIs\fP から 消費するバイト数を返す。ナルワイド文字ならばシフト状態 \fI*ps\fP を 初期状態に戻して、0 を返す。 .PP \fIs\fP から始まる \fIn\fP バイトの文字列が完全なマルチバイト文字を含んで いない場合には .BR mbrlen () は \fI(size_t)\ \-2\fP を返す。 マルチバイト文字列に冗長なシフトシーケンスを含まれていると \fIn\fP >= \fIMB_CUR_MAX\fP の時にもこのようなことが起こりえる。 .PP \fIs\fP から始まるマルチバイト文字列が、次の完全な文字の前に 不正なマルチバイト列を含んでいる場合には、 .BR mbrlen () は \fI(size_t)\ \-1\fP を返し \fIerrno\fP に \fBEILSEQ\fP が設定される。 この場合の \fI*ps\fP への影響は未定義である。 .PP \fIps\fP が NULL ポインターならば、代りに .BR mbrlen () 関数のみが使用する静的で名前のない状態が使用される。 .SH 返り値 ナルワイド文字以外の文字を確認した場合には、 .BR mbrlen () 関数は \fIs\fP から始まるマルチバイト列から使用したバイト数を返す。 ナルワイド文字が確認された場合にはゼロを返す。 不正なマルチバイト列に遭遇した場合には .I "(size_t)\ \-1" を返し \fIerrno\fP に \fBEILSEQ\fP を設定する。 完全なマルチバイト文字を解析できなかった場合には \fI(size_t)\ \-2\fP を返す。 これは \fIn\fP を増さなければならないことを意味する。 .SH 準拠 C99. .SH 注意 .BR mbrlen () の動作は現在のロケールの .B LC_CTYPE カテゴリに依存している。 .SH 関連項目 .BR mbrtowc (3)