1 .\" Copyright (c) Bruno Haible <haible@clisp.cons.org>
3 .\" %%%LICENSE_START(GPLv2+_DOC_ONEPARA)
4 .\" This is free documentation; you can redistribute it and/or
5 .\" modify it under the terms of the GNU General Public License as
6 .\" published by the Free Software Foundation; either version 2 of
7 .\" the License, or (at your option) any later version.
10 .\" References consulted:
11 .\" GNU glibc-2 source code and manual
12 .\" Dinkumware C library reference http://www.dinkumware.com/
13 .\" OpenGroup's Single UNIX specification http://www.UNIX-systems.org/online.html
16 .\"*******************************************************************
18 .\" This file was generated with po4a. Translate the source file.
20 .\"*******************************************************************
22 .\" Japanese Version Copyright (c) 1999 HANATAKA Shinya
23 .\" all rights reserved.
24 .\" Translated Tue Jan 11 00:56:13 JST 2000
25 .\" by HANATAKA Shinya <hanataka@abyss.rim.or.jp>
27 .TH MBSINIT 3 2014\-03\-18 GNU "Linux Programmer's Manual"
29 mbsinit \- 初期シフト状態かどうかを検査する
32 \fB#include <wchar.h>\fP
34 \fBint mbsinit(const mbstate_t *\fP\fIps\fP\fB);\fP
37 文字をマルチバイト表現とワイド文字表現の間で変換する場合には \fImbstate_t\fP 型の変換状態を使用する。文字列の変換は有限状態マシン
38 を使用する。いくらかの文字の変換を完了した後に、残りの文字を処理する ために状態を保存しておく必要があるかもしれない。このような変換状態は
39 ISO\-2022 や UTF\-7 のような符号を扱うのに必要とされる。
41 初期状態とは文字列の変換を開始する時の状態である。状態には二種類が 存在し、一つは \fBmbsrtowcs\fP(3) のようなマルチバイトをワイド文字に
42 変換する関数で使用される。もう一つは \fBwcsrtombs\fP(3) のような ワイド文字をマルチバイトに変換する関数で使用される。しかし両方とも
43 \fImbstate_t\fP に格納され、初期状態として同じ表現を持つ。
45 8ビット符号においては全ての状態は初期状態と等価である。 UTF\-8, EUC\-*, BIG5, SJIS のような多バイト符号においてワイド文字から
46 多バイト文字への変換関数は非初期状態にはならない。 しかし \fBmbrtowc\fP(3) のような多バイト文字からワイド文字への変換関数では
47 文字の解釈の途中で非初期状態となる場合がある。
49 初期状態の \fImbstate_t\fP を作成する方法の一つは、それをゼロに設定することである:
53 memset(&state,0,sizeof(mbstate_t));
56 Linux においては以下の方法でも同様であるが、コンパイラーの警告が 生成されるかもしれない。
59 mbstate_t state = { 0 };
62 \fBmbsinit\fP() は \fI*ps\fP が初期状態に一致するかどうかを検査する。
64 \fBmbsinit\fP() は \fI*ps\fP が初期状態の場合や NULL の場合には ゼロ以外を返す。それ以外の場合にはゼロを返す。
66 .SS "マルチスレッディング (pthreads(7) 参照)"
67 関数 \fBmbsinit\fP() はスレッドセーフである。
71 \fBmbsinit\fP() の動作は現在のロケールの \fBLC_CTYPE\fP カテゴリに依存している。
73 \fBmbrlen\fP(3), \fBmbrtowc\fP(3), \fBwcrtomb\fP(3), \fBmbsrtowcs\fP(3), \fBwcsrtombs\fP(3)
75 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.65 の一部
76 である。プロジェクトの説明とバグ報告に関する情報は
77 http://www.kernel.org/doc/man\-pages/ に書かれている。