MULTIBYTE

Section: C Library Functions (3)
索引 jman

BSD mandoc
 

索引

名称

mblen mbstowcs mbtowc wcstombs wctomb - C 言語のマルチバイト文字サポート  

索引

ライブラリ

Lb libc  

索引

書式

In stdlib.h Ft int Fn mblen const char *mbchar size_t nbytes Ft size_t Fn mbstowcs wchar_t *wcstring const char *mbstring size_t nwchars Ft int Fn mbtowc wchar_t *wcharp const char *mbchar size_t nbytes Ft size_t Fn wcstombs char *mbstring const wchar_t *wcstring size_t nbytes Ft int Fn wctomb char *mbchar wchar_t wchar  

索引

解説

中国語のような自然言語の基本要素は、C 言語の char s 型ひとつでは一意に表現できません。 標準 C 言語規格では、 ワイド 文字と マルチバイト 文字という、自然言語のエンコード方法の拡張を扱う 2 つの異なる方法がサポートされています。 ワイド文字は、基本要素ひとつひとつを wchar_t 型の単一オブジェクトへマップできるような内部表現です。 マルチバイト文字は入出力に使用され、C 言語の char s 型の並びとして基本要素ひとつひとつをコード化します。 マルチバイト文字では、個々の基本要素は 1 バイトまたはそれ以上(最大 MB_CHAR_MAX バイト ) にマップされます。

現在のロケール (setlocale(3) ) によりワイド文字とマルチバイト文字のどちらで解釈するかが決定されます。 ロケールカテゴリ LC_CTYPE の指定によりこの解釈を制御します。 型 wchar_t は、ワイド文字を表現するにあたり、すべてのロケールに対して最大の値を収容できるだけの十分な大きさを持ちます。

マルチバイト文字列には、与えられた表現中で規定されるモード間の切り替えをするための `シフト' 指示子が含まれることがあります。 明示的にシフトの発生を表すバイト列を使用すると、これらのバイトは別々の文字とはみなされずに、それと隣接する文字と一緒にまとめられます。 `初期' シフト状態は区別されて、常に存在しています。 関数 Fn mbstowcs と Fn wcstombs は、マルチバイト文字列が初期シフト状態から始まって解釈されると仮定します。 関数 Fn mblen , Fn mbtowc , Fn wctomb は、内部で静的にシフト状態を維持管理します。 ポインタ Fa mbchar がヌルである呼び出しでは、現在のロケールがシフト状態を必要とする場合は 0 以外が戻されます。シフト状態を必要としない場合は 0 が戻されます。 シフト状態を必要とする場合、シフト状態は初期状態にリセットされます。 LC_CTYPELC_ALL カテゴリを指定して Fn setlocale を呼び出した後では、内部シフト状態は未定義になります。

処理に便利なように、値が 0 のワイド文字 (ヌルワイド文字) は、ワイド文字列の終了として認識されます。 値が 0 の文字 (ヌルバイト) は、マルチバイト文字列の終了として認識されます。 マルチバイト文字では、ヌルバイト列は許可されていません。

関数 Fn mblen は、マルチバイト文字 Fa mbchar のバイト長を算出します。 Fa nbytes までが検査されます。

関数 Fn mbtowc はマルチバイト文字 Fa mbchar をワイド文字に変換し、その結果を Fa wcharp が指すオブジェクトに格納します。 Fa nbytes バイトまでが検査されます。

関数 Fn wctomb はワイド文字 Fa wchar をマルチバイト文字に変換し、その結果を Fa mbchar に格納します。 Fa mbchar が指すオブジェクトは、マルチバイト文字を収容できるだけの大きさを持たねばなりません。

関数 Fn mbstowcs は、マルチバイト文字列 Fa mbstring をワイド文字列 Fa wcstring . に変換します。 Fa nwchars の大きさのワイド文字までしか格納されません。 終了を示すヌルワイド文字は、空きがある場合に付加されます。

関数 Fn wcstombs は、ワイド文字列 Fa wcstring をマルチバイト文字列 Fa mbstring に変換します。 Fa nbytes バイトまでが Fa mbstring に格納されます。 文字列の最後の断片的なマルチバイト文字は格納されません。マルチバイト文字列は、空きがあればヌルで終わります。  

索引

戻り値

現在のロケールでマルチバイト文字がサポートされていない場合、これらすべての関数は、文字を処理できる場合は -1 を返し、処理できない場合は 0 を返します。

Fa mbchar が NULL である場合、関数 Fn mblen , Fn mbtowc , Fn wctomb は、シフト状態がサポートされている場合は 0 以外を返し、シフト状態がサポートされていない場合は 0 を返します。 Fa mbchar が有効であると、これらの関数は Fa mbchar で処理されたバイト数を返します。マルチバイト文字を認識できない場合か変換できない場合は -1 を返します。

関数 Fn mbstowcs は、変換されたワイド文字の数を返します。終了を示すヌルワイド文字は数に含めません。 関数 Fn wcstombs は、変換されたバイト数を返します。終了を示すヌルバイトは数に含めません。 不正なマルチバイト文字があると、どちらの関数も -1 を返します。  

索引

関連項目

mbrune(3), rune(3), setlocale(3), euc(4), utf2(4)  

索引

規格

関数 Fn mblen , Fn mbstowcs , Fn mbtowc , Fn wcstombs Fn wctomb は St -isoC に準拠しています。  

索引

バグ

現在のシステムは、シフト状態をサポートしません。


 

索引

Index

名称
ライブラリ
書式
解説
戻り値
関連項目
規格
バグ

jman



Time: 07:07:00 GMT, January 12, 2009